ManipulateurRectangleTest.java 8.35 KB
package test;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import java.lang.reflect.Method;
import java.util.NoSuchElementException;

import org.junit.Test;
import java.lang.Throwable.*;

import rectangles.ManipulateurRectangle;
import rectangles.Rectangle;

public class ManipulateurRectangleTest {
	/*
	*
	*Tests relatifs à ManipulateurRectangle
	*
	*/
	@Test
	public void testCreerRectangle() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		Class<? extends ManipulateurRectangle> c = mr.getClass();
		
		try{
			assertTrue (c.getDeclaredMethod("creerRectangle").getReturnType()==Rectangle.class);
		}
		catch(NoSuchMethodException e){
			throw new TestException("*****verifiez vos signatures de methodes*****");
		}
		catch(AssertionError e){
			throw new TestException("*****la methode creerRectangle doit renvoyer un Rectangle*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
	@Test
	public void testTypeToString() throws TestException {
		Rectangle rec = new Rectangle (0, 100, 50, 60);
		Class<? extends Rectangle> c = rec.getClass();
		
		try{
			assertTrue (c.getDeclaredMethod("toString").getReturnType()==String.class);
		}
		catch(NoSuchMethodException e){
			throw new TestException("*****la methode doit s'appeler toString()*****");
		}
		catch(AssertionError e){
			throw new TestException("*****la methode toString doit renvoyer un String*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
	}
	@Test
	public void testTabRect() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		Class<? extends ManipulateurRectangle> c = mr.getClass();
		
		try{
			assertTrue (c.getDeclaredField("tabRect").getGenericType()==Rectangle[].class);
		}
		catch(NoSuchFieldException e){
			throw new TestException("*****verifiez le nom de votre variable d'instance ou qu'elle est bien public ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(AssertionError e){
			throw new TestException("*****la variable d'instance tabRect doit etre de type tableau de Rectangle*****");
		}
		catch(NoSuchFieldError e){
			throw new TestException("*****verifiez vos variables d'instances ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
	@Test
	public void testCreerTableauRectangle() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		Class<? extends ManipulateurRectangle> c = mr.getClass();
		
		try{
			assertTrue (c.getDeclaredMethod("creerTableauRectangle").getReturnType()==void.class);
		}
		catch(NoSuchMethodException e){
			throw new TestException("*****verifiez vos signatures de methodes*****");
		}
		catch(AssertionError e){
			throw new TestException("*****la methode creerTableauRectangle ne doit rien renvoyer*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
	@Test
	public void testResultatCreerTableauRectangle() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		mr.creerTableauRectangle();
		try{
			assertFalse (mr.tabRect.length == 0);
			assertTrue (mr.tabRect[0].getClass() == Rectangle.class);
		}
		catch(AssertionError e){
			throw new TestException("*****la methode creerTableauRectangle doit creer un tableau de rectangle*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
	@Test
	public void testMax() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		Class<? extends ManipulateurRectangle> c = mr.getClass();
		try{
			assertTrue (c.getDeclaredMethod("max", Rectangle[].class).getReturnType()==Rectangle.class);
		}
		catch(NoSuchMethodException e){
			throw new TestException("*****verifiez vos signatures de methodes*****");
		}
		catch(AssertionError e){
			throw new TestException("*****la methode max doit renvoyer un rectangle*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
	@Test
	public void testResultatMax() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		mr.tabRect = new Rectangle[4];
		mr.tabRect[0] = new Rectangle (0, 100, 50, 60);
		mr.tabRect[1] = new Rectangle (0, 100, 50, 50);
		mr.tabRect[2] = new Rectangle (0, 50, 50, 60);
		mr.tabRect[3] = new Rectangle (10, 110, 60, 60);
		Rectangle rec = mr.max(mr.tabRect);
		try{
			assertTrue (rec == mr.tabRect[1]);
		}
		catch(AssertionError e){
			throw new TestException("*****votre algorithme de calcul de max est faux*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
	@Test
	public void testDecalerRectangle() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		Class<? extends ManipulateurRectangle> c = mr.getClass();
		try{
			assertTrue (c.getDeclaredMethod("decalerRectangles", double.class, double.class).getReturnType()==void.class);
		}
		catch(NoSuchMethodException e){
			throw new TestException("*****verifiez vos signatures de methodes*****");
		}
		catch(AssertionError e){
			throw new TestException("*****la methode decalerRectangles ne doit rien renvoyer*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
	@Test
	public void testResultatDecalerRectangle() throws TestException {
		ManipulateurRectangle mr = new ManipulateurRectangle ();
		mr.tabRect = new Rectangle[2];
		mr.tabRect[0] = new Rectangle (0, 100, 50, 60);
		Rectangle r0 = new Rectangle (0, 100, 50, 60);
		mr.tabRect[1] = new Rectangle (10, 20, 50, 50);
		Rectangle r1 = new Rectangle (10, 20, 50, 50);
		mr.decalerRectangles(10, 20);
		try{
			assertTrue(mr.tabRect[0].origin.getX() == (r0.origin.getX() + 10));
			assertTrue(mr.tabRect[0].corner.getX() == (r0.corner.getX() + 10));
			assertTrue(mr.tabRect[0].origin.getY() == (r0.origin.getY() + 20));
			assertTrue(mr.tabRect[0].corner.getY() == (r0.corner.getY() + 20));
			assertTrue(mr.tabRect[1].origin.getX() == (r1.origin.getX() + 10));
			assertTrue(mr.tabRect[1].corner.getX() == (r1.corner.getX() + 10));
			assertTrue(mr.tabRect[1].origin.getY() == (r1.origin.getY() + 20));
			assertTrue(mr.tabRect[1].corner.getY() == (r1.corner.getY() + 20));
		}
		catch(AssertionError e){
			throw new TestException("*****votre algorithme pour decaler les rectangles est faux*****");
		}
		catch(NoSuchMethodError e){
			throw new TestException("*****verifiez vos signatures de methodes ou c'est que le test verfie des choses que vous n'avez pas encore programmees*****");
		}
		catch(NoClassDefFoundError e){
			throw new TestException("*****vous n'avez pas encore cree la classe ManipulateurRectangle*****");
		}
	}
}