//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.exceptions;
import static org.junit.Assert.assertEquals;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
public class BaleenExceptionTest {
@Test
public void testAll() throws Exception {
List<Class<? extends Exception>> exceptions = Arrays.asList(BaleenException.class,
InvalidParameterException.class, MissingParameterException.class);
for (Class<? extends Exception> e : exceptions) {
test(e);
}
}
private void test(Class<? extends Exception> clazz) throws InstantiationException, IllegalAccessException,
IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
final String msg = "test";
final Throwable cause = new Exception();
// No constructor doesn't throw
clazz.newInstance();
// Message passes back
Exception string = clazz.getConstructor(String.class).newInstance("test");
assertEquals(msg, string.getMessage());
// Throwable passes back
Exception throwable = clazz.getConstructor(Throwable.class).newInstance(cause);
assertEquals(cause, throwable.getCause());
// Message passes back
Exception stringThrowable = clazz.getConstructor(String.class, Throwable.class).newInstance("test", cause);
assertEquals(msg, stringThrowable.getMessage());
assertEquals(cause, stringThrowable.getCause());
}
}