Added RoundRobinTests

This commit is contained in:
Andrey Terentev 2024-01-12 15:06:34 +07:00
parent c9196060cf
commit 5725a40329
2 changed files with 79 additions and 0 deletions

View File

@ -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());
}
}
}

View 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;
}
}