Added RoundRobinTests
This commit is contained in:
parent
c9196060cf
commit
5725a40329
@ -0,0 +1,59 @@
|
|||||||
|
package ru.dragonestia.picker.picker;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Assertions;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import ru.dragonestia.picker.config.FillingNodesConfig;
|
||||||
|
import ru.dragonestia.picker.model.Node;
|
||||||
|
import ru.dragonestia.picker.repository.RoomRepository;
|
||||||
|
import ru.dragonestia.picker.repository.UserRepository;
|
||||||
|
import ru.dragonestia.picker.util.UserFiller;
|
||||||
|
|
||||||
|
@SpringBootTest
|
||||||
|
@Import({FillingNodesConfig.class, UserFiller.class})
|
||||||
|
public class RoundRobinTests {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RoomRepository roomRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserRepository userRepository;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserFiller userFiller;
|
||||||
|
|
||||||
|
@Qualifier("roundNode")
|
||||||
|
@Autowired
|
||||||
|
private Node node;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void testPickingRoundRobin() {
|
||||||
|
{ // first iteration. Take 2 users. need take 'room-2-0'
|
||||||
|
var roomOpt = roomRepository.pickFree(node, userFiller.createRandomUsers(2));
|
||||||
|
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
|
||||||
|
System.out.printf("%s/%s%n", users.size(), slots.getSlots());
|
||||||
|
|
||||||
|
Assertions.assertEquals("room-2-0", room.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
{ // second iteration. Take 2 users. need take 'room-2-1'
|
||||||
|
var roomOpt = roomRepository.pickFree(node, userFiller.createRandomUsers(2));
|
||||||
|
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-1", room.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
20
app/src/test/java/ru/dragonestia/picker/util/UserFiller.java
Normal file
20
app/src/test/java/ru/dragonestia/picker/util/UserFiller.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package ru.dragonestia.picker.util;
|
||||||
|
|
||||||
|
import org.springframework.boot.test.context.TestComponent;
|
||||||
|
import ru.dragonestia.picker.model.User;
|
||||||
|
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@TestComponent
|
||||||
|
public class UserFiller {
|
||||||
|
|
||||||
|
public List<User> createRandomUsers(int amount) {
|
||||||
|
var list = new LinkedList<User>();
|
||||||
|
for (int i = 0; i < amount; i++) {
|
||||||
|
list.add(new User(UUID.randomUUID().toString()));
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user