TP-programmation-orientee-o.../TP09/AgendaTestAbstrait.java
2023-06-20 21:02:09 +02:00

109 lines
3 KiB
Java

import org.junit.*;
import static org.junit.Assert.*;
/**
* Programme de test d'un agenda.
*/
abstract public class AgendaTestAbstrait extends ObjetNommeTest {
protected Agenda agenda;
final protected String jourAn = "Jour de l'an";
final protected String premierFevrier = "Février commence";
final protected String finAnnee = "Fin de l'année";
protected abstract Agenda nouvelAgenda(String nom);
@Override
protected abstract ObjetNomme nouvelObjetNomme(String nom);
@Before
public void setUp() throws OccupeException {
this.agenda = nouvelAgenda("Agenda");
this.agenda.enregistrer(1, jourAn);
this.agenda.enregistrer(32, premierFevrier);
this.agenda.enregistrer(365, finAnnee);
}
@Test
public void testerNom() {
assertEquals("A1", nouvelAgenda("A1").getNom());
assertEquals("A2", nouvelAgenda("A2").getNom());
}
@Test
public void testerGetRendezVous() throws LibreException {
assertEquals(jourAn, agenda.getRendezVous(1));
assertEquals(premierFevrier, agenda.getRendezVous(32));
assertEquals(finAnnee, agenda.getRendezVous(365));
}
@Test
public void testerAnnuler() throws Exception {
assertTrue(agenda.annuler(1));
assertFalse(agenda.annuler(2));
}
@Test
public void testerAnneeBissectile() throws LibreException, OccupeException {
agenda.enregistrer(Agenda.CRENEAU_MAX, "OK");
assertEquals("OK", agenda.getRendezVous(Agenda.CRENEAU_MAX));
}
@Test(expected=OccupeException.class)
public void testerRobustesseEnregistrerOccupe() throws Exception {
agenda.enregistrer(1, "UN");
}
@Test(expected=CreneauInvalideException.class)
public void testerRobustesseEnregistrerCreneauPetit() throws Exception {
agenda.enregistrer(Agenda.CRENEAU_MIN - 1, "UN");
}
@Test(expected=CreneauInvalideException.class)
public void testerRobustesseEnregistrerCreneauGrand() throws Exception {
agenda.enregistrer(Agenda.CRENEAU_MAX + 1, "UN");
}
@Test(expected=CreneauInvalideException.class)
public void testerRobustesseAnnulerCreneauPetit() throws Exception {
agenda.annuler(Agenda.CRENEAU_MIN - 1);
}
@Test(expected=CreneauInvalideException.class)
public void testerRobustesseAnnulerCreneauGrand() throws Exception {
agenda.annuler(Agenda.CRENEAU_MAX + 1);
}
@Test(expected=LibreException.class)
public void testerRobustesseGetRendezVousLibre() throws Exception {
agenda.getRendezVous(2);
}
@Test(expected=CreneauInvalideException.class)
public void testerRobustesseGetRendezVousCreneauPetit() throws Exception {
agenda.getRendezVous(Agenda.CRENEAU_MIN - 1);
}
@Test(expected=CreneauInvalideException.class)
public void testerRobustesseGetRendezVousCreneauGrand() throws Exception {
agenda.getRendezVous(Agenda.CRENEAU_MAX + 1);
}
@Test(expected=IllegalArgumentException.class)
public void testerEnregistrerIllegalArgumentNull() throws Exception {
agenda.enregistrer(10, null);
}
@Test(expected=IllegalArgumentException.class)
public void testerEnregistrerIllegalArgumentVide() throws Exception {
agenda.enregistrer(10, "");
}
}