import org.junit.*; import static org.junit.Assert.*; /** * Vérifier que les exceptions sont correctement définies. * * @author Xavier Crégut */ public class ExceptionsTest { public static boolean isUncheckedException(Class classe) { return Error.class.isAssignableFrom(classe) || RuntimeException.class.isAssignableFrom(classe); } public static boolean isCheckedException(Class classe) { return Throwable.class.isAssignableFrom(classe) && ! isUncheckedException(classe); } public void verifierEstRuntimeException(Class classe) { assertTrue(classe.getName() + " doit être une exception !", Throwable.class.isAssignableFrom(classe)); assertTrue(classe.getName() + " doit être non vérifiée !", isUncheckedException(classe)); assertFalse(classe.getName() + " : pourquoi en faire une Error ?", Error.class.isAssignableFrom(classe)); } public void verifierIsCheckedException(Class classe) { assertTrue(classe.getName() + " doit être une exception !", Throwable.class.isAssignableFrom(classe)); assertTrue(classe.getName() + " doit être vérifiée !", isCheckedException(classe)); } @Test public void testerExceptions() { verifierEstRuntimeException(CreneauInvalideException.class); verifierIsCheckedException(LibreException.class); verifierIsCheckedException(OccupeException.class); } }