package main; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.List; import java.util.Random; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import carte.EquipementStat; import condition.Condition; import effet.EffetSelf; import effet.action.ActionAltererStatistiquesJoueur; import personnage.Allie; class GestionnaireEquipementsTest { Joueur j1; Joueur j2; Plateau p; Random rand; Allie a1; Allie a2; @BeforeEach void init() { rand = new Random(); List joueurs = new ArrayList(); j1 = new Joueur("Michel"); j2 = new Joueur("Antoine"); joueurs.add(j1); joueurs.add(j2); p = new Plateau(joueurs); a1 = new Allie(j1); a2 = new Allie(j2); j1.setCartePersonnage(a1); j2.setCartePersonnage(a2); } @Test void ajouterEquipement_NbEquipements() { int nbEffets = 20; for(int i = 0; i < 20; i++) { EquipementStat es = new EquipementStat("AddDamage", "desc"); es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, 2, true))); es.setCondition(new Condition()); j1.ajouterEquipement(es); } assertEquals(nbEffets, j1.getStat(Joueur.PLAYER_NB_EQUIPEMENTS)); } @Test void ajouterEquipement_StackingStats() { int nbEffets = 20; int valeurEffet = 3; for(int i = 0; i < 20; i++) { EquipementStat es = new EquipementStat("AddDamage", "desc"); es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true))); es.setCondition(new Condition()); j1.ajouterEquipement(es); } assertEquals(nbEffets*valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE)); } @Test void ajouterEquipement_RetirerEffet() { int valeurEffet = 3; EquipementStat es = new EquipementStat("AddDamage", "desc"); es.setEffet(new EffetSelf(new ActionAltererStatistiquesJoueur(Joueur.PLAYER_DAMAGE, valeurEffet, true))); es.setCondition(new Condition()); j1.ajouterEquipement(es); assertEquals(valeurEffet, j1.getStat(Joueur.PLAYER_DAMAGE)); j1.retirerEquipement(es); assertEquals(0, j1.getStat(Joueur.PLAYER_DAMAGE)); } }