feat: created a better account creation flow
All checks were successful
Format / formatting (push) Successful in 6s
Build / build (push) Successful in 5m20s
CI / build (push) Successful in 11s

This commit is contained in:
Pierre Tellier
2025-04-09 17:39:43 +02:00
parent 385c5cd8d0
commit 66be0baca6
14 changed files with 377 additions and 88 deletions

View File

@ -4,12 +4,10 @@ import static enseirb.myinpulse.model.ProjectDecisionValue.*;
import static org.junit.jupiter.api.Assertions.*;
import enseirb.myinpulse.model.Administrator;
import enseirb.myinpulse.model.Entrepreneur;
import enseirb.myinpulse.model.Project;
import enseirb.myinpulse.model.ProjectDecision;
import enseirb.myinpulse.model.*;
import enseirb.myinpulse.service.AdminApiService;
import enseirb.myinpulse.service.database.AdministratorService;
import enseirb.myinpulse.service.database.AppointmentService;
import enseirb.myinpulse.service.database.EntrepreneurService;
import enseirb.myinpulse.service.database.ProjectService;
@ -21,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.server.ResponseStatusException;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.List;
@ -37,7 +36,8 @@ public class AdminApiServiceTest {
static void setup(
@Autowired AdministratorService administratorService,
@Autowired ProjectService projectService,
@Autowired EntrepreneurService entrepreneurService) {
@Autowired EntrepreneurService entrepreneurService,
@Autowired AppointmentService appoitmentService) {
administratorService.addAdministrator(
new Administrator(
"admin",
@ -54,6 +54,7 @@ public class AdminApiServiceTest {
"testAdmin@example.com",
""));
administratorid = administrator.getIdUser();
entrepreneur =
new Entrepreneur(
"JeSuisUnEntrepreneurDeCompet",
@ -65,14 +66,33 @@ public class AdminApiServiceTest {
"info ofc",
false);
entrepreneurService.addEntrepreneur(entrepreneur);
projectService.addNewProject(
new Project(
"sampleProjectAdminApiService",
Entrepreneur entrepreneur2 =
new Entrepreneur(
"GDProjets", "", "Entrepreneur2@inpulse.com", "", "", "", "info ofc", true);
entrepreneurService.addEntrepreneur(entrepreneur2);
Project p =
projectService.addNewProject(
new Project(
"sampleProjectAdminApiService",
null,
LocalDate.now(),
ACTIVE,
administratorService.getAdministratorByPrimaryMain(
"testAdminFull@example.com")));
entrepreneurService.updateEntrepreneurProjectParticipation(entrepreneur2.getIdUser(), p);
Appointment a =
new Appointment(
null,
LocalDate.now(),
ACTIVE,
administratorService.getAdministratorByPrimaryMain(
"testAdminFull@example.com")));
LocalTime.now(),
LocalTime.now(),
"Salle TD 15",
"Discussion importante");
appoitmentService.addNewAppointment(a);
}
private <T> List<T> IterableToList(Iterable<T> iterable) {
@ -221,4 +241,54 @@ public class AdminApiServiceTest {
this.adminApiService.addNewProject(p1);
assertThrows(ResponseStatusException.class, () -> this.adminApiService.addNewProject(p2));
}
// We could do a delete active project, but it's not really useful.
@Test
void deletePendingProject() {
int oldsize = IterableToList(this.adminApiService.getPendingProjects()).size();
Project p1 =
new Project("PendingProjectAdminApiService2", null, LocalDate.now(), PENDING, null);
Project p2 = this.adminApiService.addNewProject(p1);
assertEquals(oldsize + 1, IterableToList(this.adminApiService.getPendingProjects()).size());
this.adminApiService.deleteProject(p2.getIdProject());
assertEquals(oldsize, IterableToList(this.adminApiService.getPendingProjects()).size());
for (int i = 0; i < oldsize; i++) {
assertNotEquals(
p1.getIdProject(),
IterableToList(this.adminApiService.getPendingProjects())
.get(i)
.getIdProject());
}
}
@Test
void getUpcommingAppointmentUnkwnownUser() {
assertThrows(
ResponseStatusException.class,
() -> {
Iterable<Appointment> a =
this.adminApiService.getUpcomingAppointments(
"entrepreneur-inexistent@mail.fr");
});
}
@Test
void getUpcommingAppointmentNoProject() {
assertThrows(
ResponseStatusException.class,
() -> {
Iterable<Appointment> a =
this.adminApiService.getUpcomingAppointments(
"Entrepreneur@inpulse.com");
});
}
@Test
void getUpcommingAppointmentEmpty() {
Iterable<Appointment> a =
this.adminApiService.getUpcomingAppointments("Entrepreneur2@inpulse.com");
assertEquals(0, IterableToList(a).size());
}
}