diff --git a/design_pattern/src/tests/EtatEndormiTest.java b/design_pattern/src/tests/EtatEndormiTest.java new file mode 100644 index 0000000000000000000000000000000000000000..bed1ef0e491e8ce615b17790f475f855c505610f --- /dev/null +++ b/design_pattern/src/tests/EtatEndormiTest.java @@ -0,0 +1,55 @@ +package tests; + +import modele.*; +import modele.DPState.Etat; +import modele.DPState.EtatActif; +import modele.DPState.EtatEndormi; +import modele.DPStrategie.ConcreteStrategieAgressif; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class EtatEndormiTest { + private Etat etat; + private EtatActif etatActif; + private ConcreteStrategieAgressif concreteStrategieAgressif; + private Epee epee; + private Sorcier sorcier; + private Roi roi; + private BatonDeSorcier batonDeSorcier; + @BeforeEach + void setUp() { + etat = new EtatEndormi(); + etatActif = new EtatActif(); + concreteStrategieAgressif = new ConcreteStrategieAgressif(); + epee = new Epee(20, "epee", 2.0, 10); + batonDeSorcier = new BatonDeSorcier(15, "baton", 1.5, "pouvoir"); + roi = new Roi(100, 1, "roi", epee, 20, "royaume"); + sorcier = new Sorcier(40, 1, "sorcier", batonDeSorcier, 20); + + roi.setStrategie(concreteStrategieAgressif); + sorcier.setStrategie(concreteStrategieAgressif); + roi.setEtat(etat); + sorcier.setEtat(etatActif); + + } + + @Test + void actionTour() { + int attaqueRoi = 0; + int attaqueSorcier = 0; + + for (int i=0; i<5; i++){ + if(roi.getEtat() != etatActif){ + roi.attaquer(sorcier); + attaqueRoi++; + } + if(sorcier.getEtat() != etatActif){ + sorcier.attaquer(roi); + attaqueSorcier++; + } + } + assertNotEquals(attaqueRoi, attaqueSorcier); + } +} \ No newline at end of file