diff --git a/design_pattern/src/tests/EtatActifTest.java b/design_pattern/src/tests/EtatActifTest.java new file mode 100644 index 0000000000000000000000000000000000000000..30f2caa96623d30847e964cdd663a103ecfe8779 --- /dev/null +++ b/design_pattern/src/tests/EtatActifTest.java @@ -0,0 +1,50 @@ +package tests; + +import modele.BatonDeSorcier; +import modele.DPState.Etat; +import modele.DPState.EtatActif; +import modele.DPState.EtatEndormi; +import modele.DPStrategie.ConcreteStrategieAgressif; +import modele.DPStrategie.ConcreteStrategieNeutre; +import modele.Epee; +import modele.Roi; +import modele.Sorcier; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class EtatActifTest { + private Etat etat; + private EtatActif etatActif; + private ConcreteStrategieNeutre concreteStrategieNeutre; + private Epee epee; + private Sorcier sorcier; + private Roi roi; + private BatonDeSorcier batonDeSorcier; + @BeforeEach + void setUp() { + concreteStrategieNeutre = new ConcreteStrategieNeutre(); + 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); + etat = new EtatActif(roi); + etatActif = new EtatActif(sorcier); + + roi.setStrategie(concreteStrategieNeutre); + sorcier.setStrategie(concreteStrategieNeutre); + roi.setEtat(etat); + sorcier.setEtat(etatActif); + + } + + @Test + void actionTour() { + int vieSorcierAttendu = sorcier.getPointsDeVie() - (5*roi.getArme().getDegat()); + for (int i=0; i<5; i++){ + roi.getEtat().actionTour(sorcier); + } + assertEquals(vieSorcierAttendu, sorcier.getPointsDeVie()); + } +} \ No newline at end of file