package pkg_graphique; /** * The test class HexagoneTest. * * @author (your name) * @version (a version number or a date) */ public class HexagoneTest extends junit.framework.TestCase { public void test1Hexagone() { Class vClasse = Hexagone.class; assertTrue( vClasse.getSimpleName() + ": il manque au moins un attribut ! (aHeight,aWidth)", TestUtil.hasField( vClasse, "p", "int", "aSide" ) ); assertTrue( vClasse.getSimpleName() + ": aSide n'est pas prive ??", TestUtil.hasField( vClasse, "i", "int", "aSide" ) ); HexagoneTest.verifSubclass( Hexagone.class, 1 ); } // test1Hexagone() public static void verifSubclass( Class pClasse, int pNbA ) { assertTrue( pClasse.getSimpleName() + ": il y a au moins un attribut de trop ! (aXPosition, aYPosition, aColor, aVisible)", !TestUtil.hasField( pClasse, "p", "int", "aXPosition" ) && !TestUtil.hasField( pClasse, "p", "int", "aYPosition" ) && !TestUtil.hasField( pClasse, "p", "String", "aColor" ) && !TestUtil.hasField( pClasse, "p", "boolean", "aVisible" ) ); assertTrue( pClasse.getSimpleName() + ": il manque au moins un des deux constructeurs !", TestUtil.hasConstructor( pClasse, "u", 3+pNbA ) && TestUtil.hasConstructor( pClasse, "u", 0 ) ); assertTrue( pClasse.getSimpleName() + ": il y a au moins une methode commune de trop ! " + "(3*Visible,move*6,slowMove*2,change*2,draw,erase)", !TestUtil.hasMethod( pClasse, "p", "makeVisible", 0 ) && !TestUtil.hasMethod( pClasse, "p", "makeInvisible", 0 ) && !TestUtil.hasMethod( pClasse, "p", "isVisible", 0 ) && !TestUtil.hasMethod( pClasse, "p", "moveRight", 0 ) && !TestUtil.hasMethod( pClasse, "p", "moveLeft", 0 ) && !TestUtil.hasMethod( pClasse, "p", "moveUp", 0 ) && !TestUtil.hasMethod( pClasse, "p", "moveDown", 0 ) && !TestUtil.hasMethod( pClasse, "p", "moveHorizontal", 1 ) && !TestUtil.hasMethod( pClasse, "p", "moveVertical", 1 ) && !TestUtil.hasMethod( pClasse, "p", "slowMoveHorizontal", 1 ) && !TestUtil.hasMethod( pClasse, "p", "slowMoveVertical", 1 ) && !TestUtil.hasMethod( pClasse, "p", "changeSize", 1 ) && !TestUtil.hasMethod( pClasse, "p", "changecolor", 1 ) && !TestUtil.hasMethod( pClasse, "p", "draw", 0 ) && !TestUtil.hasMethod( pClasse, "p", "erase", 0 ) ); assertTrue( pClasse.getSimpleName() + ": il manque au moins une methode specifique ! (changeSizeSpec, drawSpec)", TestUtil.hasMethod( pClasse, "p", "changeSizeSpec", 1 ) && TestUtil.hasMethod( pClasse, "p", "drawSpec", 1 ) ); assertTrue( pClasse.getSimpleName() + ": mauvaise redefinition de changeSizeSpec !", TestUtil.hasMethodP( pClasse, "p", "void", "changeSizeSpec", new String[]{"double"} ) ); assertTrue( pClasse.getSimpleName() + ": mauvaise redefinition de drawSpec !", TestUtil.hasMethodP( pClasse, "p", "void", "drawSpec", new String[]{"Canvas"} ) ); assertTrue( pClasse.getSimpleName() + ": une methode redefinie sans @Override !", TestUtil.hasMethodOver( pClasse, "changeSizeSpec", 1 ) && TestUtil.hasMethodOver( pClasse, "drawSpec", 1 ) ); } // verifSubclass() /** * Default constructor for test class HexagoneTest */ public HexagoneTest() { } /** * Sets up the test fixture. * * Called before every test case method. */ protected void setUp() { } /** * Tears down the test fixture. * * Called after every test case method. */ protected void tearDown() { } }