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 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 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 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 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 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 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*****"); } } }