M431-ShadowHunterGame/tests/main/GestionnaireEquipementsTest.java

97 lines
2.2 KiB
Java

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.CarteEquipementStat;
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<Joueur> joueurs = new ArrayList<Joueur>();
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++) {
CarteEquipementStat es = new CarteEquipementStat("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++) {
CarteEquipementStat es = new CarteEquipementStat("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;
CarteEquipementStat es = new CarteEquipementStat("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));
}
}