diff --git a/MyINPulse-back/src/test/java/enseirb/myinpulse/ServiceTests/AdminApiServiceTest.java b/MyINPulse-back/src/test/java/enseirb/myinpulse/ServiceTests/AdminApiServiceTest.java deleted file mode 100644 index abd21fb..0000000 --- a/MyINPulse-back/src/test/java/enseirb/myinpulse/ServiceTests/AdminApiServiceTest.java +++ /dev/null @@ -1,173 +0,0 @@ -package enseirb.myinpulse; - -import static enseirb.myinpulse.model.ProjectDecisionValue.*; - -import static org.junit.jupiter.api.Assertions.*; - -import enseirb.myinpulse.model.Administrator; -import enseirb.myinpulse.model.Project; -import enseirb.myinpulse.model.ProjectDecision; -import enseirb.myinpulse.service.AdminApiService; -import enseirb.myinpulse.service.database.AdministratorService; -import enseirb.myinpulse.service.database.ProjectService; - -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.server.ResponseStatusException; - -import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; - -@SpringBootTest -@Transactional -public class AdminApiServiceTest { - private static long administratorid; - @Autowired private AdminApiService adminApiService; - @Autowired private ProjectService projectService; - - @BeforeAll - static void setup( - @Autowired AdministratorService administratorService, - @Autowired ProjectService projectService) { - administratorService.addAdministrator( - new Administrator( - "admin", - "admin", - "testAdminEmpty@example.com", - "testAdmin@example.com", - "")); - Administrator a = - administratorService.addAdministrator( - new Administrator( - "admin2", - "admin2", - "testAdminFull@example.com", - "testAdmin@example.com", - "")); - administratorid = a.getIdUser(); - projectService.addNewProject( - new Project( - "sampleProjectAdminApiService", - null, - LocalDate.now(), - ACTIVE, - administratorService.getAdministratorByPrimaryMain( - "testAdminFull@example.com"))); - } - - private List IterableToList(Iterable iterable) { - List l = new ArrayList<>(); - iterable.forEach(l::add); - return l; - } - - @Test - void getProjectOfAdminIsEmpty() { - Iterable projects = - adminApiService.getProjectsOfAdmin("testAdminEmpty@example.com"); - assertEquals(0, IterableToList(projects).size()); - } - - @Test - void getProjectOfInexistantAdminFails() { - String nonExistentAdminEmail = "testInexistantAdmin@example.com"; - - assertThrows( - ResponseStatusException.class, - () -> { - adminApiService.getProjectsOfAdmin(nonExistentAdminEmail); - }); - } - - @Test - void getProjectOfAdminNotEmpty() { - Iterable projects = - adminApiService.getProjectsOfAdmin("testAdminFull@example.com"); - List l = IterableToList(projects); - assertEquals(1, l.size()); - Project p = l.getFirst(); - assertEquals(p.getProjectName(), "sampleProjectAdminApiService"); - } - - @Test - void getPendingProjectsEmpty() { - assertEquals(0, IterableToList(this.adminApiService.getPendingProjects()).size()); - } - - @Test - void getPendingProjectsNotEmpty() { - this.projectService.addNewProject( - new Project( - "PendingProjectAdminApiService1", null, LocalDate.now(), PENDING, null)); - this.projectService.addNewProject( - new Project( - "PendingProjectAdminApiService2", null, LocalDate.now(), PENDING, null)); - Iterable pendingProjects = this.adminApiService.getPendingProjects(); - List pendingProjectsList = IterableToList(pendingProjects); - assertEquals(2, pendingProjectsList.size()); - assertTrue( - List.of("PendingProjectAdminApiService1", "PendingProjectAdminApiService2") - .contains(pendingProjectsList.getFirst().getProjectName())); - assertTrue( - List.of("PendingProjectAdminApiService1", "PendingProjectAdminApiService2") - .contains(pendingProjectsList.getLast().getProjectName())); - } - - @Test - void validateInexistantProject() { - ProjectDecision d = new ProjectDecision(-1, 0, 1); - assertThrows(ResponseStatusException.class, () -> this.adminApiService.validateProject(d)); - } - - @Test - void validateExistantProject() { - Project p = - new Project("PendingProjectAdminApiService2", null, LocalDate.now(), PENDING, null); - this.projectService.addNewProject(p); - assertEquals(PENDING, p.getProjectStatus()); - ProjectDecision d = new ProjectDecision(p.getIdProject(), administratorid, 1); - this.adminApiService.validateProject(d); - assertEquals(ACTIVE, p.getProjectStatus()); - - // Check if the project was really updated in the database - assertEquals(0, IterableToList(this.adminApiService.getPendingProjects()).size()); - } - - @Test - void refuseExistantProject() { - Project p = - new Project("PendingProjectAdminApiService2", null, LocalDate.now(), PENDING, null); - this.projectService.addNewProject(p); - assertEquals(PENDING, p.getProjectStatus()); - ProjectDecision d = new ProjectDecision(p.getIdProject(), administratorid, 0); - this.adminApiService.validateProject(d); - assertEquals(REJECTED, p.getProjectStatus()); - - // Check if the project was really updated in the database - assertEquals(0, IterableToList(this.adminApiService.getPendingProjects()).size()); - } - - @Test - void addProject() { - assertEquals(0, IterableToList(this.adminApiService.getPendingProjects()).size()); - Project p1 = - new Project("PendingProjectAdminApiService2", null, LocalDate.now(), PENDING, null); - this.adminApiService.addNewProject(p1); - - assertEquals(1, IterableToList(this.adminApiService.getPendingProjects()).size()); - } - - @Test - void addDuplicateProject() { - Project p1 = - new Project("PendingProjectAdminApiService2", null, LocalDate.now(), PENDING, null); - Project p2 = - new Project("PendingProjectAdminApiService2", null, LocalDate.now(), PENDING, null); - this.adminApiService.addNewProject(p1); - assertThrows(ResponseStatusException.class, () -> this.adminApiService.addNewProject(p2)); - } -} diff --git a/documentation/openapi/src/main.yaml b/documentation/openapi/src/main.yaml index eeaa57e..11258f9 100644 --- a/documentation/openapi/src/main.yaml +++ b/documentation/openapi/src/main.yaml @@ -37,13 +37,14 @@ components: flows: implicit: authorizationUrl: http://localhost:7080 + description: keycloak server scopes: MyINPulse-admin: Administrateur MyINPulse-entrepreneur: Utilisateur servers: - url: http://localhost:8081/ - description: Backend developper server + description: Backend server