From cfaa6e5e9026dc175ed4d1590b55f209e654b425 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Fri, 12 Jan 2024 15:38:14 +0700 Subject: [PATCH] Added more tests for other situations with RoundRobin picker (fount loop bug) --- .../picker/picker/RoundRobinTests.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/app/src/test/java/ru/dragonestia/picker/picker/RoundRobinTests.java b/app/src/test/java/ru/dragonestia/picker/picker/RoundRobinTests.java index 467a53b..209c15f 100644 --- a/app/src/test/java/ru/dragonestia/picker/picker/RoundRobinTests.java +++ b/app/src/test/java/ru/dragonestia/picker/picker/RoundRobinTests.java @@ -31,7 +31,7 @@ public class RoundRobinTests { @Test void testPickingRoundRobin() { - { // first iteration. Take 2 users. need take 'room-2-0' + { // first iteration. Take 2 users. expected take 'room-2-0' var roomOpt = roomRepository.pickFree(node, userFiller.createRandomUsers(2)); Assertions.assertTrue(roomOpt.isPresent()); @@ -43,7 +43,7 @@ public class RoundRobinTests { Assertions.assertEquals("room-2-0", room.getId()); } - { // second iteration. Take 2 users. need take 'room-2-1' + { // second iteration. Take 2 users. expected take 'room-2-1' var roomOpt = roomRepository.pickFree(node, userFiller.createRandomUsers(2)); Assertions.assertTrue(roomOpt.isPresent()); @@ -54,5 +54,34 @@ public class RoundRobinTests { Assertions.assertEquals("room-2-1", room.getId()); } + + { // third iteration. Take 1 user. expected take 'room-2-2' + var roomOpt = roomRepository.pickFree(node, userFiller.createRandomUsers(1)); + Assertions.assertTrue(roomOpt.isPresent()); + + var room = roomOpt.get(); + var slots = room.getSlots(); + var users = userRepository.usersOf(room); + Assertions.assertTrue(slots.isUnlimited() || slots.getSlots() >= users.size()); // check slots limitation + + Assertions.assertEquals("room-2-2", room.getId()); + } + + { // fourth iteration. Take 4 users. expected take 'room-2-2' + var roomOpt = roomRepository.pickFree(node, userFiller.createRandomUsers(4)); + Assertions.assertTrue(roomOpt.isPresent()); + + var room = roomOpt.get(); + var slots = room.getSlots(); + var users = userRepository.usersOf(room); + Assertions.assertTrue(slots.isUnlimited() || slots.getSlots() >= users.size()); // check slots limitation + + Assertions.assertEquals("room-4-0", room.getId()); + } + + { // fifth iteration. Take 9 users. expected none result + var roomOpt = roomRepository.pickFree(node, userFiller.createRandomUsers(9)); + Assertions.assertTrue(roomOpt.isEmpty()); + } } }