TP-programmation-orientee-o.../TP09/ExceptionsTest.java
2023-06-20 21:02:09 +02:00

46 lines
1.4 KiB
Java

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