package tondeuse.fr.application.intelligence;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

import tondeuse.fr.application.exceptions.IllegalPositionException;
import tondeuse.fr.application.intelligence.actions.ActionAvance;
import tondeuse.fr.application.intelligence.actions.ActionDroite;
import tondeuse.fr.application.intelligence.actions.ActionGauche;
import tondeuse.fr.application.model.AbstractAction;
import tondeuse.fr.application.model.Plateau;
import tondeuse.fr.application.model.Position;
import tondeuse.fr.application.model.Tondeuse;
import tondeuse.fr.application.model.Tondeuse.Orientation;

public class PassageTondeusesTest {

	@Test
	public void test() throws IllegalPositionException {
		
		
		Position coinSuperieur = new Position(5, 5);
		AbstractAction actionGauche = new ActionGauche(coinSuperieur);
		AbstractAction actionDroite = new ActionDroite(coinSuperieur);
		AbstractAction actionAvance = new ActionAvance(coinSuperieur);
		Plateau plateau = new Plateau(coinSuperieur);
		
		Tondeuse tondeuse1 = new Tondeuse(Orientation.NORTH, new Position(1,2));
		tondeuse1.addAction(actionGauche);
		tondeuse1.addAction(actionAvance);
		tondeuse1.addAction(actionGauche);
		tondeuse1.addAction(actionAvance);
		tondeuse1.addAction(actionGauche);
		tondeuse1.addAction(actionAvance);
		tondeuse1.addAction(actionGauche);
		tondeuse1.addAction(actionAvance);
		tondeuse1.addAction(actionAvance);
		plateau.addTondeuse(tondeuse1);
		
		Tondeuse tondeuse2 = new Tondeuse(Orientation.EAST, new Position(3,3));
		tondeuse2.addAction(actionAvance);
		tondeuse2.addAction(actionAvance);
		tondeuse2.addAction(actionDroite);
		tondeuse2.addAction(actionAvance);
		tondeuse2.addAction(actionAvance);
		tondeuse2.addAction(actionDroite);
		tondeuse2.addAction(actionAvance);
		tondeuse2.addAction(actionDroite);
		tondeuse2.addAction(actionDroite);
		tondeuse2.addAction(actionAvance);
		plateau.addTondeuse(tondeuse2);
		
		PassageTondeuses passageTondeuses = new PassageTondeuses(plateau);
		passageTondeuses.passerTondeuses();
		
		assertEquals(tondeuse1.getPosition(), new Position(1,3));
		assertEquals(tondeuse1.getOrientation(), Orientation.NORTH);
		assertEquals(tondeuse2.getPosition(), new Position(5,1));
		assertEquals(tondeuse2.getOrientation(), Orientation.EAST);
	}

}

@@ -84,16 +84,59 @@
 tEquals;
+%0Aimport static org.junit.Assert.assertSame;
 %0A%0Aimport
@@ -733,16 +733,19 @@
 oid test
+Exo
 () throw
@@ -777,14 +777,8 @@
 n %7B%0A
-%09%09%0A%09%09%0A
 %09%09Po
@@ -2349,12 +2349,346 @@
 AST);%0A%09%7D
+%0A%09@Test%0A%09public void testSansTondeuse() throws IllegalPositionException %7B%0A%09%09Position coinSuperieur = new Position(5, 5);%0A%09%09Plateau plateau = new Plateau(coinSuperieur);%0A%09%09%0A%09%09PassageTondeuses passageTondeuses = new PassageTondeuses(plateau);%0A%09%09passageTondeuses.passerTondeuses();%0A%09%09%0A%09%09assertSame(plateau.getTondeuses().size(), 0);%0A%09%7D%0A%09
 %0A%0A%7D%0A

Test sans tondeuse