blob: 2dd54ebbd39b2bf84c6e0610359f9ef441a49793 [file] [log] [blame]
package org.mockito.internal.junit;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockitoutil.ClassLoaders.excludingClassLoader;
import java.lang.reflect.Method;
import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.exceptions.verification.ArgumentsAreDifferent;
public class ExceptionFactoryTest {
private static ClassLoader classLoaderWithoutJUnit = excludingClassLoader().withCodeSourceUrlOf(ExceptionFactory.class).without("org.junit", "junit").build();
/** loaded by the current current class loader */
private static Class<?> junitArgumentsAreDifferent;
/** loaded by the custom classloader {@value #classLoaderWithoutJUnit}, which excludes junit-classes */
private static Class<?> nonJunitArgumentsAreDifferent;
@BeforeClass
public static void init() throws ClassNotFoundException {
nonJunitArgumentsAreDifferent = classLoaderWithoutJUnit.loadClass(ArgumentsAreDifferent.class.getName());
junitArgumentsAreDifferent = org.mockito.exceptions.verification.junit.ArgumentsAreDifferent.class;
}
@Test
public void createArgumentsAreDifferentException_withoutJUnit() throws Exception {
Class<?> exceptionFactory = classLoaderWithoutJUnit.loadClass(ExceptionFactory.class.getName());
Method m = exceptionFactory.getDeclaredMethod("createArgumentsAreDifferentException", String.class, String.class, String.class);
Object e = m.invoke(null, "message", "wanted", "actual");
assertThat(e).isExactlyInstanceOf(nonJunitArgumentsAreDifferent);
}
@Test
public void createArgumentsAreDifferentException_withJUnit() throws Exception {
AssertionError e = ExceptionFactory.createArgumentsAreDifferentException("message", "wanted", "actual");
assertThat(e).isExactlyInstanceOf(junitArgumentsAreDifferent);
}
@Test
public void createArgumentsAreDifferentException_withJUnit2x() throws Exception {
AssertionError e;
e = ExceptionFactory.createArgumentsAreDifferentException("message", "wanted", "actual");
assertThat(e).isExactlyInstanceOf(junitArgumentsAreDifferent);
e = ExceptionFactory.createArgumentsAreDifferentException("message", "wanted", "actual");
assertThat(e).isExactlyInstanceOf(junitArgumentsAreDifferent);
}
}