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

V2

parent 8b2ff6a5
Branches
Tags
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