MyINPulse/MyINPulse-back/src/test/java/enseirb/myinpulse/EntrepreneurApiServiceTest.java
Théo Le Lez 5b6b647697
Some checks failed
Format / formatting (push) Successful in 5s
Build / build (push) Failing after 37s
CI / build (push) Successful in 11s
feat: started test for EntrepreneurServiceApi
2025-04-02 10:25:50 +02:00

153 lines
6.0 KiB
Java

package enseirb.myinpulse;
import static enseirb.myinpulse.model.ProjectDecisionValue.*;
import static org.junit.jupiter.api.Assertions.*;
import enseirb.myinpulse.model.Entrepreneur;
import enseirb.myinpulse.model.Project;
import enseirb.myinpulse.model.SectionCell;
import enseirb.myinpulse.service.EntrepreneurApiService;
import enseirb.myinpulse.service.database.EntrepreneurService;
import enseirb.myinpulse.service.database.ProjectService;
import enseirb.myinpulse.service.database.SectionCellService;
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.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
@SpringBootTest
@Transactional
public class EntrepreneurApiServiceTest {
private static Entrepreneur entrepreneur;
private static Iterable<SectionCell> sectionCells;
@Autowired private EntrepreneurApiService entrepreneurApiService;
@Autowired private EntrepreneurService entrepreneurService;
@Autowired private ProjectService projectService;
@Autowired private SectionCellService sectionCellService;
@BeforeAll
static void setup(
@Autowired EntrepreneurService entrepreneurService,
@Autowired ProjectService projectService,
@Autowired SectionCellService sectionCellService) {
entrepreneur =
entrepreneurService.addEntrepreneur(
new Entrepreneur(
"entre",
"preneur",
"entrepreneur@mail.fr",
"entrepreneur2@mail.fr",
"01 45 71 25 48",
"ENSEIRB",
"Info",
false));
entrepreneurService.addEntrepreneur(
new Entrepreneur(
"entre2",
"preneur2",
"testentrepreneur@mail.fr",
"testentrepreneur2@mail.fr",
"",
"ENSEGID",
"",
true));
Project project =
projectService.addNewProject(
new Project("Project", null, LocalDate.now(), ACTIVE, null, entrepreneur));
entrepreneur.setProjectParticipation(project);
sectionCellService.addNewSectionCell(
new SectionCell(
null,
2L,
"contenu très intéressant",
LocalDateTime.now(),
projectService.getProjectByName("Project")));
sectionCells =
sectionCellService.getSectionCellsByProject(
projectService.getProjectByName("Project"), 2L);
}
private <T> List<T> IterableToList(Iterable<T> iterable) {
List<T> l = new ArrayList<>();
iterable.forEach(l::add);
return l;
}
@Test
void editValidSectionCell() {
System.out.println(sectionCells);
entrepreneurApiService.editSectionCell(
IterableToList(sectionCells).getFirst().getIdSectionCell(),
"modified content",
"entrepreneur@mail.fr");
assertEquals(
"modified content",
IterableToList(sectionCells).getFirst().getContentSectionCell());
}
@Test
void editInvalidSectionCell() {
assertThrows(
ResponseStatusException.class,
() ->
entrepreneurApiService.editSectionCell(
-1L, "should not be modified", "entrepreneur@mail.fr"));
}
@Test
void editSectionCellInvalidAccess() {
assertThrows(
ResponseStatusException.class,
() ->
entrepreneurApiService.editSectionCell(
IterableToList(sectionCells).getFirst().getIdSectionCell(),
"should not be modified",
"testentrepreneur@mail.fr"));
assertEquals(
"contenu très intéressant",
IterableToList(sectionCells).getFirst().getContentSectionCell());
}
@Test
void removeValidSectionCell() {
SectionCell tmpCell =
sectionCellService.addNewSectionCell(
new SectionCell(
null,
2L,
"contenu temporaire",
LocalDateTime.now(),
projectService.getProjectByName("Project")));
assertEquals(
2,
IterableToList(
sectionCellService.getSectionCellsByProject(
projectService.getProjectByName("Project"), 2L))
.size());
entrepreneurApiService.removeSectionCell(
tmpCell.getIdSectionCell(), "entrepreneur@mail.fr");
assertEquals(
1,
IterableToList(
sectionCellService.getSectionCellsByProject(
projectService.getProjectByName("Project"), 2L))
.size());
}
@Test
void removeInvalidSectionCell() {
assertThrows(
ResponseStatusException.class,
() -> entrepreneurApiService.removeSectionCell(-1L, "entrepreneur@mail.fr"));
}
}