168 lines
6.8 KiB
Java
168 lines
6.8 KiB
Java
package mops.gruppen2.controller;
|
|
|
|
import mops.gruppen2.Gruppen2Application;
|
|
import mops.gruppen2.repository.EventRepository;
|
|
import mops.gruppen2.service.EventService;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.security.test.context.support.WithMockUser;
|
|
import org.springframework.test.annotation.Rollback;
|
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import static mops.gruppen2.TestBuilder.addUserEvent;
|
|
import static mops.gruppen2.TestBuilder.createPrivateGroupEvent;
|
|
import static mops.gruppen2.TestBuilder.createPublicGroupEvent;
|
|
import static mops.gruppen2.TestBuilder.deleteGroupEvent;
|
|
import static mops.gruppen2.TestBuilder.deleteUserEvent;
|
|
import static mops.gruppen2.TestBuilder.updateGroupTitleEvent;
|
|
import static mops.gruppen2.TestBuilder.uuidMock;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
|
|
@ExtendWith(SpringExtension.class)
|
|
@SpringBootTest(classes = Gruppen2Application.class)
|
|
@Transactional
|
|
@Rollback
|
|
class APIControllerTest {
|
|
|
|
@Autowired
|
|
private EventRepository eventRepository;
|
|
@Autowired
|
|
private APIController apiController;
|
|
private EventService eventService;
|
|
@Autowired
|
|
private JdbcTemplate template;
|
|
|
|
@BeforeEach
|
|
void setUp() {
|
|
eventService = new EventService(eventRepository);
|
|
eventRepository.deleteAll();
|
|
//noinspection SqlResolve
|
|
template.execute("ALTER TABLE event ALTER COLUMN event_id RESTART WITH 1");
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void updateGroup_noGroup() {
|
|
assertThat(apiController.updateGroups(0L).getGroupList()).hasSize(0);
|
|
assertThat(apiController.updateGroups(4L).getGroupList()).hasSize(0);
|
|
assertThat(apiController.updateGroups(10L).getGroupList()).hasSize(0);
|
|
assertThat(apiController.updateGroups(0L).getStatus()).isEqualTo(0);
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void updateGroup_singleGroup() {
|
|
eventService.saveAll(createPublicGroupEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0)));
|
|
|
|
assertThat(apiController.updateGroups(0L).getGroupList()).hasSize(1);
|
|
assertThat(apiController.updateGroups(4L).getGroupList()).hasSize(1);
|
|
assertThat(apiController.updateGroups(10L).getGroupList()).hasSize(0);
|
|
assertThat(apiController.updateGroups(0L).getStatus()).isEqualTo(5);
|
|
}
|
|
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void updateGroup_multipleGroups() {
|
|
eventService.saveAll(createPublicGroupEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0)),
|
|
createPrivateGroupEvent(uuidMock(1)),
|
|
addUserEvent(uuidMock(1)),
|
|
addUserEvent(uuidMock(1)),
|
|
addUserEvent(uuidMock(1)));
|
|
|
|
assertThat(apiController.updateGroups(0L).getGroupList()).hasSize(2);
|
|
assertThat(apiController.updateGroups(4L).getGroupList()).hasSize(1);
|
|
assertThat(apiController.updateGroups(6L).getGroupList()).hasSize(1);
|
|
assertThat(apiController.updateGroups(7L).getGroupList()).hasSize(0);
|
|
assertThat(apiController.updateGroups(0L).getStatus()).isEqualTo(7);
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupsOfUser_noGroup() {
|
|
assertThat(apiController.getGroupIdsOfUser("A")).isEmpty();
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupsOfUser_singleGroup() {
|
|
eventService.saveAll(createPrivateGroupEvent(uuidMock(0)),
|
|
createPrivateGroupEvent(uuidMock(1)),
|
|
createPrivateGroupEvent(uuidMock(2)),
|
|
addUserEvent(uuidMock(0), "A"));
|
|
|
|
assertThat(apiController.getGroupIdsOfUser("A")).hasSize(1);
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupsOfUser_singleGroupDeletedUser() {
|
|
eventService.saveAll(createPrivateGroupEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0), "A"),
|
|
deleteUserEvent(uuidMock(0), "A"));
|
|
|
|
assertThat(apiController.getGroupIdsOfUser("A")).isEmpty();
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupsOfUser_singleDeletedGroup() {
|
|
eventService.saveAll(createPrivateGroupEvent(uuidMock(0)),
|
|
addUserEvent(uuidMock(0), "A"),
|
|
deleteGroupEvent(uuidMock(0)));
|
|
|
|
assertThat(apiController.getGroupIdsOfUser("A")).isEmpty();
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupsOfUser_multipleGroups() {
|
|
eventService.saveAll(createPrivateGroupEvent(uuidMock(0)),
|
|
createPrivateGroupEvent(uuidMock(1)),
|
|
createPrivateGroupEvent(uuidMock(2)),
|
|
addUserEvent(uuidMock(0), "A"),
|
|
addUserEvent(uuidMock(0), "B"),
|
|
addUserEvent(uuidMock(1), "A"),
|
|
addUserEvent(uuidMock(2), "A"),
|
|
addUserEvent(uuidMock(2), "B"));
|
|
|
|
assertThat(apiController.getGroupIdsOfUser("A")).hasSize(3);
|
|
assertThat(apiController.getGroupIdsOfUser("B")).hasSize(2);
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupFromId_noGroup() {
|
|
assertThat(apiController.getGroupById(uuidMock(0).toString())).isEqualTo(null);
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupFromId_singleGroup() {
|
|
eventService.saveAll(createPrivateGroupEvent(uuidMock(0)));
|
|
|
|
assertThat(apiController.getGroupById(uuidMock(0).toString()).getId()).isEqualTo(uuidMock(0));
|
|
}
|
|
|
|
@Test
|
|
@WithMockUser(username = "api_user", roles = "api_user")
|
|
void getGroupFromId_deletedGroup() {
|
|
eventService.saveAll(createPrivateGroupEvent(uuidMock(0)),
|
|
updateGroupTitleEvent(uuidMock(0)),
|
|
deleteGroupEvent(uuidMock(0)));
|
|
|
|
assertThat(apiController.getGroupById(uuidMock(0).toString()).getTitle()).isEqualTo(null);
|
|
}
|
|
}
|