TP-programmation-orientee-o.../TP09/ExceptionsTest.java

46 lines
1.4 KiB
Java
Raw Permalink Normal View History

2023-06-20 19:02:09 +00:00
import org.junit.*;
import static org.junit.Assert.*;
/**
* Vérifier que les exceptions sont correctement définies.
*
* @author Xavier Crégut <Prenom.Nom@enseeiht.fr>
*/
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);
}
}