Skip to content

Commit

Permalink
fixed tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ScarletRedMan committed May 27, 2024
1 parent 9322602 commit bebba7f
Show file tree
Hide file tree
Showing 8 changed files with 83 additions and 84 deletions.
1 change: 1 addition & 0 deletions server/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.mockito:mockito-junit-jupiter:4.2.0'
testImplementation project(":client-api")
}

tasks.named('bootBuildImage') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;
import ru.dragonestia.picker.api.model.node.PickingMethod;
import ru.dragonestia.picker.api.repository.type.NodeIdentifier;
import ru.dragonestia.picker.api.repository.type.RoomIdentifier;
import ru.dragonestia.picker.api.repository.type.EntityIdentifier;
import ru.dragonestia.picker.model.entity.EntityId;
import ru.dragonestia.picker.model.instance.Instance;
import ru.dragonestia.picker.model.entity.Entity;
import ru.dragonestia.picker.model.instance.InstanceId;
import ru.dragonestia.picker.model.instance.type.PickingMethod;
import ru.dragonestia.picker.model.room.RoomId;
import ru.dragonestia.picker.model.room.factory.RoomFactory;
import ru.dragonestia.picker.repository.InstanceRepository;
import ru.dragonestia.picker.repository.RoomRepository;
Expand Down Expand Up @@ -56,7 +56,7 @@ public class FillingNodesConfig {

@Bean
void createSequentialFillingNode() {
var node = new Instance(NodeIdentifier.of("seq"), PickingMethod.SEQUENTIAL_FILLING, false);
var node = new Instance(InstanceId.of("seq"), PickingMethod.SEQUENTIAL_FILLING, false);
instanceRepository.create(node);

fillNode(node);
Expand All @@ -66,7 +66,7 @@ void createSequentialFillingNode() {

@Bean
void createRoundRobinNode() {
var node = new Instance(NodeIdentifier.of("round"), PickingMethod.ROUND_ROBIN, false);
var node = new Instance(InstanceId.of("round"), PickingMethod.ROUND_ROBIN, false);
instanceRepository.create(node);

fillNode(node);
Expand All @@ -76,7 +76,7 @@ void createRoundRobinNode() {

@Bean
void createLeastPickerNode() {
var node = new Instance(NodeIdentifier.of("least"), PickingMethod.LEAST_PICKED, false);
var node = new Instance(InstanceId.of("least"), PickingMethod.LEAST_PICKED, false);
instanceRepository.create(node);

fillNode(node);
Expand All @@ -88,12 +88,12 @@ private void fillNode(Instance instance) {
for (int i = 0, n = 5; i < n; i++) {
for (int j = 0; j < 3; j++) {
var roomId = "room-" + i + "-" + j;
var room = roomFactory.create(RoomIdentifier.of(roomId), instance, n, "", false);
var room = roomFactory.create(RoomId.of(roomId), instance, n, "", false);
roomRepository.create(room);

var users = n - i;
for (int k = users - 1; k >= 0; k--) {
var user = new Entity(EntityIdentifier.of("user-" + k));
var user = EntityId.of("user-" + k);
entityRepository.linkWithRoom(room, List.of(user), false);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
import ru.dragonestia.picker.api.exception.NoRoomsAvailableException;
import ru.dragonestia.picker.config.FillingNodesConfig;
import ru.dragonestia.picker.exception.NoRoomsAvailableException;
import ru.dragonestia.picker.model.instance.Instance;
import ru.dragonestia.picker.model.room.RoomId;
import ru.dragonestia.picker.repository.RoomRepository;
import ru.dragonestia.picker.repository.EntityRepository;
import ru.dragonestia.picker.util.UserFiller;
Expand Down Expand Up @@ -41,15 +42,15 @@ public class LeastPickedTests {
@ParameterizedTest
@ArgumentsSource(PickingArgumentProvider.class)
void testPicking(String expectedRoomId, int usersAmount) {
var expectedRoomUsers = entityRepository.entitiesOf(roomRepository.find(instance, expectedRoomId).orElseThrow()).size();
var expectedRoomUsers = entityRepository.entitiesOf(roomRepository.find(instance.getId(), RoomId.of(expectedRoomId)).orElseThrow()).size();

var room = roomRepository.pick(instance, userFiller.createRandomUsers(usersAmount));
var slots = room.getMaxSlots();
var room = roomRepository.pick(instance.getId(), userFiller.createRandomUsers(usersAmount));
var slots = room.getSlots();
var users = entityRepository.entitiesOf(room);
Assertions.assertTrue(slots == -1 || slots >= users.size()); // check slots limitation

System.out.printf("Room(%s) has %s/%s users. Expected: %s(%s), added: %s%n", room.getId(), users.size(), slots, expectedRoomId, expectedRoomUsers, usersAmount);
Assertions.assertEquals(expectedRoomId, room.getId());
Assertions.assertEquals(expectedRoomId, room.getId().getValue());
}

public static class PickingArgumentProvider implements ArgumentsProvider {
Expand All @@ -74,6 +75,6 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext extensionCo
@Timeout(value = 1, threadMode = Timeout.ThreadMode.SEPARATE_THREAD)
@Test
void testNoOneRoomExpected() { // Take 9 users. expected none result
Assertions.assertThrows(NoRoomsAvailableException.class, () -> roomRepository.pick(instance, userFiller.createRandomUsers(9)));
Assertions.assertThrows(NoRoomsAvailableException.class, () -> roomRepository.pick(instance.getId(), userFiller.createRandomUsers(9)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
import ru.dragonestia.picker.api.exception.NoRoomsAvailableException;
import ru.dragonestia.picker.config.FillingNodesConfig;
import ru.dragonestia.picker.exception.NoRoomsAvailableException;
import ru.dragonestia.picker.model.instance.Instance;
import ru.dragonestia.picker.repository.RoomRepository;
import ru.dragonestia.picker.repository.EntityRepository;
Expand Down Expand Up @@ -39,12 +39,12 @@ public class RoundRobinTests {
@ParameterizedTest
@ArgumentsSource(PickingArgumentProvider.class)
void testPicking(String expectedRoomId, int usersAmount) {
var room = roomRepository.pick(instance, userFiller.createRandomUsers(usersAmount));
var slots = room.getMaxSlots();
var room = roomRepository.pick(instance.getId(), userFiller.createRandomUsers(usersAmount));
var slots = room.getSlots();
var users = entityRepository.entitiesOf(room);
Assertions.assertTrue(slots == -1 || slots >= users.size()); // check slots limitation

Assertions.assertEquals(expectedRoomId, room.getId());
Assertions.assertEquals(expectedRoomId, room.getId().getValue());
}

public static class PickingArgumentProvider implements ArgumentsProvider {
Expand All @@ -66,6 +66,6 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext extensionCo
@Timeout(value = 1, threadMode = Timeout.ThreadMode.SEPARATE_THREAD)
@Test
void testNoOneRoomExpected() { // Take 9 users. expected none result
Assertions.assertThrows(NoRoomsAvailableException.class, () -> roomRepository.pick(instance, userFiller.createRandomUsers(9)));
Assertions.assertThrows(NoRoomsAvailableException.class, () -> roomRepository.pick(instance.getId(), userFiller.createRandomUsers(9)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Import;
import ru.dragonestia.picker.api.exception.NoRoomsAvailableException;
import ru.dragonestia.picker.config.FillingNodesConfig;
import ru.dragonestia.picker.exception.NoRoomsAvailableException;
import ru.dragonestia.picker.model.instance.Instance;
import ru.dragonestia.picker.model.room.RoomId;
import ru.dragonestia.picker.repository.RoomRepository;
import ru.dragonestia.picker.repository.EntityRepository;
import ru.dragonestia.picker.util.UserFiller;
Expand Down Expand Up @@ -41,15 +42,15 @@ public class SequentialFillingTests {
@ParameterizedTest
@ArgumentsSource(PickingArgumentProvider.class)
void testPicking(String expectedRoomId, int usersAmount) {
var expectedRoomUsers = entityRepository.entitiesOf(roomRepository.find(instance, expectedRoomId).orElseThrow()).size();
var expectedRoomUsers = entityRepository.entitiesOf(roomRepository.find(instance.getId(), RoomId.of(expectedRoomId)).orElseThrow()).size();

var room = roomRepository.pick(instance, userFiller.createRandomUsers(usersAmount));
var slots = room.getMaxSlots();
var room = roomRepository.pick(instance.getId(), userFiller.createRandomUsers(usersAmount));
var slots = room.getSlots();
var users = entityRepository.entitiesOf(room);
Assertions.assertTrue(slots == -1 || slots >= users.size()); // check slots limitation

System.out.printf("Room(%s) has %s/%s users. Expected: %s(%s), added: %s%n", room.getId(), users.size(), slots, expectedRoomId, expectedRoomUsers, usersAmount);
Assertions.assertEquals(expectedRoomId, room.getId());
Assertions.assertEquals(expectedRoomId, room.getId().getValue());
}

public static class PickingArgumentProvider implements ArgumentsProvider {
Expand All @@ -71,6 +72,6 @@ public Stream<? extends Arguments> provideArguments(ExtensionContext extensionCo
@Timeout(value = 1, threadMode = Timeout.ThreadMode.SEPARATE_THREAD)
@Test
void testNoOneRoomExpected() { // Take 9 users. expected none result
Assertions.assertThrows(NoRoomsAvailableException.class, () -> roomRepository.pick(instance, userFiller.createRandomUsers(9)));
Assertions.assertThrows(NoRoomsAvailableException.class, () -> roomRepository.pick(instance.getId(), userFiller.createRandomUsers(9)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.test.context.support.WithMockUser;
import ru.dragonestia.picker.api.exception.InstanceAlreadyExistException;
import ru.dragonestia.picker.api.model.node.PickingMethod;
import ru.dragonestia.picker.api.repository.type.NodeIdentifier;
import ru.dragonestia.picker.exception.AlreadyExistsException;
import ru.dragonestia.picker.model.instance.Instance;
import ru.dragonestia.picker.model.instance.InstanceId;
import ru.dragonestia.picker.model.instance.type.PickingMethod;

import java.util.List;

Expand All @@ -21,26 +21,26 @@ public class InstanceServiceTests {
@WithMockUser(roles = {"NODE_MANAGEMENT"})
@Test
void test_nodeCreateAndRemove() {
var node = new Instance(NodeIdentifier.of("test"), PickingMethod.SEQUENTIAL_FILLING, false);
var node = new Instance(InstanceId.of("test"), PickingMethod.SEQUENTIAL_FILLING, false);

Assertions.assertDoesNotThrow(() -> instanceService.create(node));
Assertions.assertTrue(instanceService.find(node.getId()).isPresent());
Assertions.assertThrows(InstanceAlreadyExistException.class, () -> instanceService.create(node));
Assertions.assertThrows(AlreadyExistsException.class, () -> instanceService.create(node));

instanceService.remove(node);
instanceService.remove(node.getId());

Assertions.assertFalse(() -> instanceService.find(node.getId()).isPresent());
}

@WithMockUser(roles = {"NODE_MANAGEMENT"})
@Test
void test_allNodes() {
instanceService.all().forEach(node -> instanceService.remove(node));
instanceService.all().forEach(node -> instanceService.remove(node.getId()));

var nodes = List.of(
new Instance(NodeIdentifier.of("test1"), PickingMethod.SEQUENTIAL_FILLING, false),
new Instance(NodeIdentifier.of("test2"), PickingMethod.ROUND_ROBIN, false),
new Instance(NodeIdentifier.of("test3"), PickingMethod.ROUND_ROBIN, false)
new Instance(InstanceId.of("test1"), PickingMethod.SEQUENTIAL_FILLING, false),
new Instance(InstanceId.of("test2"), PickingMethod.ROUND_ROBIN, false),
new Instance(InstanceId.of("test3"), PickingMethod.ROUND_ROBIN, false)
);

nodes.forEach(node -> instanceService.create(node));
Expand All @@ -50,7 +50,7 @@ void test_allNodes() {
Assertions.assertEquals(nodes.size(), list.size());
Assertions.assertTrue(list.containsAll(nodes));

nodes.forEach(node -> instanceService.remove(node));
nodes.forEach(node -> instanceService.remove(node.getId()));

Assertions.assertEquals(0, instanceService.all().size());
}
Expand Down
Loading

0 comments on commit bebba7f

Please sign in to comment.