import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; class TestCohort { private static final Cohort cohort = new Cohort("L2 informatique"); private static final Student davidGoodenough = new Student("David", "Goodenough"); private static final Student jeanMichelBruitage = new Student("Jean-Michel", "Bruitage"); private static final Cohort l1Descartes = new Cohort("L1 Descartes"); @BeforeAll static void addStudentsToCohort(){ jeanMichelBruitage.addResult("Programmation 2", TestGrade.zero); jeanMichelBruitage.addResult("Structures discrètes", TestGrade.twenty); davidGoodenough.addResult("Programmation 2", TestGrade.ten); davidGoodenough.addResult("Structures discrètes", TestGrade.ten); cohort.addStudent(davidGoodenough); cohort.addStudent(jeanMichelBruitage); } @Test void testGetStudentsIsEmpty_whenEmptyCohort(){ assertThat(l1Descartes.getStudents()).isEmpty(); } @Test void testGetStudents_whenCohortContainsStudents(){ assertThat(cohort.getStudents()).isEqualTo(List.of(davidGoodenough, jeanMichelBruitage)); } @Test void testPrintStudentsResults_whenCohortIsEmpty() { StandardOutputSandbox standardOutputSandbox = new StandardOutputSandbox(l1Descartes::printStudentsResults); String expectedOutput = "L1 Descartes" + StandardOutputSandbox.NEW_LINE + StandardOutputSandbox.NEW_LINE; standardOutputSandbox.run(); assertThat(standardOutputSandbox.getProducedOutput()).isEqualTo(expectedOutput); } @Test void testPrintStudentsResults_whenCohortContainsStudents() { StandardOutputSandbox standardOutputSandbox = new StandardOutputSandbox(cohort::printStudentsResults); String expectedOutput = "L2 informatique" + StandardOutputSandbox.NEW_LINE + StandardOutputSandbox.NEW_LINE + "David Goodenough" + StandardOutputSandbox.NEW_LINE + "Programmation 2 : 10.0/20" + StandardOutputSandbox.NEW_LINE + "Structures discrètes : 10.0/20" + StandardOutputSandbox.NEW_LINE + "Note moyenne : 10.0/20" + StandardOutputSandbox.NEW_LINE + StandardOutputSandbox.NEW_LINE + "Jean-Michel Bruitage" + StandardOutputSandbox.NEW_LINE + "Programmation 2 : 0.0/20" + StandardOutputSandbox.NEW_LINE + "Structures discrètes : 20.0/20" + StandardOutputSandbox.NEW_LINE + "Note moyenne : 10.0/20" + StandardOutputSandbox.NEW_LINE + StandardOutputSandbox.NEW_LINE; standardOutputSandbox.run(); assertThat(standardOutputSandbox.getProducedOutput()).isEqualTo(expectedOutput); } }