Skip to content
Snippets Groups Projects
Commit de506b58 authored by VIGNERON Steven's avatar VIGNERON Steven
Browse files

V2

parent 8b2ff6a5
No related branches found
No related tags found
No related merge requests found
doc/Q2_DiagSequence.png

9.74 KiB

@startuml
participant "Roi (roi)" as roi
participant "NiveauVisiteur (nv)" as nv
roi -> roi : accept(nv)
roi -> nv : nv.visitRoi(this)
nv -> roi : "augmentation de niveau"
@enduml
package DP;
public interface ComposantEquipe {
void accept(VisiteurPersonnage visiteur);
}
......@@ -33,4 +33,9 @@ public class DegatVisiteur implements VisiteurPersonnage{
}
}
}
@Override
public void visitEquipe(Equipe equipe) {
}
}
package DP;
import java.util.ArrayList;
public class Equipe implements ComposantEquipe {
private ArrayList<ComposantEquipe> composants;
public Equipe(){
composants = new ArrayList<>();
}
public void addComposant(ComposantEquipe ... ces) {
for (ComposantEquipe ce : ces){
if(ce != null){
if(!composants.contains(ce)){ // ne vérifie pas dans les sous equipes
composants.add(ce);
}
}
}
}
public void rmComposant(ComposantEquipe ce) {
composants.remove(ce);
}
@Override
public void accept(VisiteurPersonnage visiteur) {
for (ComposantEquipe c : composants) {
c.accept(visiteur);
}
visiteur.visitEquipe(this); // pas d'utilisation pour le moment
}
}
......@@ -9,7 +9,6 @@ public class NiveauVisiteur implements VisiteurPersonnage{
public void visitRoi(Roi roi){
if(roi != null) {
roi.setNiveau(roi.getNiveau() + 1);
}
}
public void visitSorcier(Sorcier sorcier) {
......@@ -22,4 +21,9 @@ public class NiveauVisiteur implements VisiteurPersonnage{
guerisseur.setNiveau(guerisseur.getNiveau() + 1);
}
}
@Override
public void visitEquipe(Equipe equipe) {
}
}
package DP;
public abstract class Personnage {
public abstract class Personnage implements ComposantEquipe {
protected int pointsDeVie;
protected int niveau;
protected String nom;
......
......@@ -5,4 +5,5 @@ public interface VisiteurPersonnage {
public void visitRoi(Roi roi);
public void visitSorcier(Sorcier sorcier);
public void visitGuerisseur(Guerisseur guerisseur);
public void visitEquipe(Equipe equipe);
}
......@@ -12,10 +12,10 @@ public class TestV1 {
NiveauVisiteur nv = new NiveauVisiteur();
Roi roi = new Roi();
int niveau_avant = roi.getNiveau();
nv.visitRoi(roi);
roi.accept(nv);
int niveau_apres = roi.getNiveau();
assertEquals("Le niveau de base devrait etre 1", 1, niveau_avant);
assertEquals("Le niveau apres que le visiteur soie passer devrait etre 2", 2, niveau_apres);
assertEquals("Le niveau apres que le visiteur soie passé devrait etre 2", 2, niveau_apres);
}
@Test
......@@ -24,12 +24,12 @@ public class TestV1 {
Roi roi = new Roi();
roi.setNiveau(5);
int niveau_avant = roi.getNiveau();
nv.visitRoi(roi);
nv.visitRoi(roi);
nv.visitRoi(roi);
roi.accept(nv);
roi.accept(nv);
roi.accept(nv);
int niveau_apres = roi.getNiveau();
assertEquals("Le niveau devrait etre 1", 5, niveau_avant);
assertEquals("Le niveau apres que le visiteur soie passer devrait etre 2", 8, niveau_apres);
assertEquals("Le niveau apres que le visiteur soie passé devrait etre 2", 8, niveau_apres);
}
@Test
......@@ -37,10 +37,10 @@ public class TestV1 {
DegatVisiteur dv = new DegatVisiteur();
Roi roi = new Roi();
int degats_avant = roi.getArme().getDegat();
dv.visitRoi(roi);
roi.accept(dv);
int degats_apres = roi.getArme().getDegat();
assertEquals("Les degats de base de l'arme devrait etre 1", 50, degats_avant);
assertEquals("Le niveau apres que le visiteur soie passer devrait etre 2", 55, degats_apres);
assertEquals("Les degats de base de l'arme devrait etre 50", 50, degats_avant);
assertEquals("Les degats de l'arme apres que le visiteur soie passé devrait etre 55", 55, degats_apres);
}
@Test
......@@ -48,9 +48,9 @@ public class TestV1 {
DegatVisiteur dv = new DegatVisiteur();
Roi roi = new Roi();
roi.setArme(null);
dv.visitRoi(roi);
roi.accept(dv);
roi.setArme(new Epee());
assertEquals("Les degats de base de l'arme devrait etre 1", 50, roi.getArme().getDegat());
assertEquals("Les degats de base de l'arme devrait etre 50", 50, roi.getArme().getDegat());
// aucune erreur n'est declanché
}
}
import DP.*;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestV2 {
@Test
public void test_visiteurNiveau_Equipe(){
NiveauVisiteur nv = new NiveauVisiteur();
Equipe soldats = new Equipe();
Guerrier guerrier1 = new Guerrier();
Guerrier guerrier2 = new Guerrier();
soldats.addComposant(guerrier1, guerrier2);
Equipe bataillon = new Equipe();
Guerisseur guerisseur = new Guerisseur();
Roi roi = new Roi();
bataillon.addComposant(roi, guerisseur, soldats);
bataillon.accept(nv);
assertEquals("Le niveau du roi apres que le visiteur soie passer devrait etre 2", 2, roi.getNiveau());
assertEquals("Le niveau du guerisseur apres que le visiteur soie passer devrait etre 2", 2, guerisseur.getNiveau());
assertEquals("Le niveau du guerrier1 apres que le visiteur soie passer devrait etre 2", 2, guerrier1.getNiveau());
assertEquals("Le niveau du guerrier2 apres que le visiteur soie passer devrait etre 2", 2, guerrier2.getNiveau());
}
@Test
public void test_visiteurDegat_Equipe(){
DegatVisiteur dv = new DegatVisiteur();
Equipe soldats = new Equipe();
Guerrier guerrier1 = new Guerrier();
Guerrier guerrier2 = new Guerrier();
soldats.addComposant(guerrier1, guerrier2);
Equipe bataillon = new Equipe();
Guerisseur guerisseur = new Guerisseur();
Roi roi = new Roi();
bataillon.addComposant(roi, guerisseur, soldats);
bataillon.accept(dv);
assertEquals("Les degats de l'arme du roi apres que le visiteur ne sont pas ceux attendu", 55, roi.getArme().getDegat());
assertEquals("Les degats de l'arme du guerisseur apres que le visiteur ne sont pas ceux attendu", 15, guerisseur.getArme().getDegat());
assertEquals("Les degats de l'arme du guerrier1 apres que le visiteur ne sont pas ceux attendu", 55, guerrier1.getArme().getDegat());
assertEquals("Les degats de l'arme du guerrier2 apres que le visiteur ne sont pas ceux attendu", 55, guerrier2.getArme().getDegat());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment