blob: b97df8221a78496e352acc65436be96a9cc17971 [file] [log] [blame]
package org.junit.runners.model;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.rules.ExpectedException.none;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
public class FrameworkMethodTest {
@Rule
public final ExpectedException thrown = none();
@Test
public void cannotBeCreatedWithoutUnderlyingField() {
thrown.expect(NullPointerException.class);
thrown.expectMessage("FrameworkMethod cannot be created without an underlying method.");
new FrameworkMethod(null);
}
@Test
public void hasToStringWhichPrintsMethodName() throws Exception {
Method method = ClassWithDummyMethod.class.getMethod("dummyMethod");
FrameworkMethod frameworkMethod = new FrameworkMethod(method);
assertTrue(frameworkMethod.toString().contains("dummyMethod"));
}
@Test
public void presentAnnotationIsAvailable() throws Exception {
Method method = ClassWithDummyMethod.class.getMethod("annotatedDummyMethod");
FrameworkMethod frameworkMethod = new FrameworkMethod(method);
Annotation annotation = frameworkMethod.getAnnotation(Rule.class);
assertTrue(Rule.class.isAssignableFrom(annotation.getClass()));
}
@Test
public void missingAnnotationIsNotAvailable() throws Exception {
Method method = ClassWithDummyMethod.class.getMethod("annotatedDummyMethod");
FrameworkMethod frameworkMethod = new FrameworkMethod(method);
Annotation annotation = frameworkMethod.getAnnotation(ClassRule.class);
assertThat(annotation, is(nullValue()));
}
private static class ClassWithDummyMethod {
@SuppressWarnings("unused")
public void dummyMethod() {
}
@Rule
public void annotatedDummyMethod() {
}
}
}