public class TestClass extends java.lang.Object implements Annotatable
Modifier and Type | Class and Description |
---|---|
private static class |
TestClass.FieldComparator
Compares two fields by its name.
|
private static class |
TestClass.MethodComparator
Compares two methods by its name.
|
Modifier and Type | Field and Description |
---|---|
private java.lang.Class<?> |
clazz |
private static TestClass.FieldComparator |
FIELD_COMPARATOR |
private java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkField>> |
fieldsForAnnotations |
private static TestClass.MethodComparator |
METHOD_COMPARATOR |
private java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkMethod>> |
methodsForAnnotations |
Constructor and Description |
---|
TestClass(java.lang.Class<?> clazz)
Creates a
TestClass wrapping clazz . |
Modifier and Type | Method and Description |
---|---|
protected static <T extends FrameworkMember<T>> |
addToAnnotationLists(T member,
java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<T>> map) |
<T> void |
collectAnnotatedFieldValues(java.lang.Object test,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass,
java.lang.Class<T> valueClass,
MemberValueConsumer<T> consumer)
Finds the fields annotated with the specified annotation and having the specified type,
retrieves the values and passes those to the specified consumer.
|
<T> void |
collectAnnotatedMethodValues(java.lang.Object test,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass,
java.lang.Class<T> valueClass,
MemberValueConsumer<T> consumer)
Finds the methods annotated with the specified annotation and returning the specified type,
invokes it and pass the return value to the specified consumer.
|
private <T> java.util.List<T> |
collectValues(java.util.Map<?,java.util.List<T>> map) |
boolean |
equals(java.lang.Object obj) |
java.util.List<FrameworkField> |
getAnnotatedFields()
Returns, efficiently, all the non-overridden fields in this class and its
superclasses that are annotated.
|
java.util.List<FrameworkField> |
getAnnotatedFields(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
Returns, efficiently, all the non-overridden fields in this class and its
superclasses that are annotated with
annotationClass . |
<T> java.util.List<T> |
getAnnotatedFieldValues(java.lang.Object test,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass,
java.lang.Class<T> valueClass) |
private static <T> java.util.List<T> |
getAnnotatedMembers(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<T>> map,
java.lang.Class<? extends java.lang.annotation.Annotation> type,
boolean fillIfAbsent) |
java.util.List<FrameworkMethod> |
getAnnotatedMethods()
Returns, efficiently, all the non-overridden methods in this class and
its superclasses that are annotated}.
|
java.util.List<FrameworkMethod> |
getAnnotatedMethods(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
Returns, efficiently, all the non-overridden methods in this class and
its superclasses that are annotated with
annotationClass . |
<T> java.util.List<T> |
getAnnotatedMethodValues(java.lang.Object test,
java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass,
java.lang.Class<T> valueClass) |
<T extends java.lang.annotation.Annotation> |
getAnnotation(java.lang.Class<T> annotationType)
Returns the annotation on the model element of the given type, or @code{null}
|
java.lang.annotation.Annotation[] |
getAnnotations()
Returns the annotations on this class
|
java.lang.Class<?> |
getJavaClass()
Returns the underlying Java class.
|
java.lang.String |
getName()
Returns the class's name.
|
java.lang.reflect.Constructor<?> |
getOnlyConstructor()
Returns the only public constructor in the class, or throws an
AssertionError if there are more or less than one. |
private static java.lang.reflect.Field[] |
getSortedDeclaredFields(java.lang.Class<?> clazz) |
private static java.util.List<java.lang.Class<?>> |
getSuperClasses(java.lang.Class<?> testClass) |
int |
hashCode() |
boolean |
isANonStaticInnerClass() |
boolean |
isPublic() |
private static <T extends FrameworkMember<T>> |
makeDeeplyUnmodifiable(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<T>> source) |
private static boolean |
runsTopToBottom(java.lang.Class<? extends java.lang.annotation.Annotation> annotation) |
protected void |
scanAnnotatedMembers(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkMethod>> methodsForAnnotations,
java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkField>> fieldsForAnnotations) |
private static final TestClass.FieldComparator FIELD_COMPARATOR
private static final TestClass.MethodComparator METHOD_COMPARATOR
private final java.lang.Class<?> clazz
private final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkMethod>> methodsForAnnotations
private final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkField>> fieldsForAnnotations
public TestClass(java.lang.Class<?> clazz)
TestClass
wrapping clazz
. Each time this
constructor executes, the class is scanned for annotations, which can be
an expensive process (we hope in future JDK's it will not be.) Therefore,
try to share instances of TestClass
where possible.protected void scanAnnotatedMembers(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkMethod>> methodsForAnnotations, java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<FrameworkField>> fieldsForAnnotations)
private static java.lang.reflect.Field[] getSortedDeclaredFields(java.lang.Class<?> clazz)
protected static <T extends FrameworkMember<T>> void addToAnnotationLists(T member, java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<T>> map)
private static <T extends FrameworkMember<T>> java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<T>> makeDeeplyUnmodifiable(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<T>> source)
public java.util.List<FrameworkMethod> getAnnotatedMethods()
public java.util.List<FrameworkMethod> getAnnotatedMethods(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
annotationClass
.public java.util.List<FrameworkField> getAnnotatedFields()
public java.util.List<FrameworkField> getAnnotatedFields(java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass)
annotationClass
.private <T> java.util.List<T> collectValues(java.util.Map<?,java.util.List<T>> map)
private static <T> java.util.List<T> getAnnotatedMembers(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.util.List<T>> map, java.lang.Class<? extends java.lang.annotation.Annotation> type, boolean fillIfAbsent)
private static boolean runsTopToBottom(java.lang.Class<? extends java.lang.annotation.Annotation> annotation)
private static java.util.List<java.lang.Class<?>> getSuperClasses(java.lang.Class<?> testClass)
public java.lang.Class<?> getJavaClass()
public java.lang.String getName()
public java.lang.reflect.Constructor<?> getOnlyConstructor()
AssertionError
if there are more or less than one.public java.lang.annotation.Annotation[] getAnnotations()
getAnnotations
in interface Annotatable
public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationType)
Annotatable
getAnnotation
in interface Annotatable
public <T> java.util.List<T> getAnnotatedFieldValues(java.lang.Object test, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass, java.lang.Class<T> valueClass)
public <T> void collectAnnotatedFieldValues(java.lang.Object test, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass, java.lang.Class<T> valueClass, MemberValueConsumer<T> consumer)
public <T> java.util.List<T> getAnnotatedMethodValues(java.lang.Object test, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass, java.lang.Class<T> valueClass)
public <T> void collectAnnotatedMethodValues(java.lang.Object test, java.lang.Class<? extends java.lang.annotation.Annotation> annotationClass, java.lang.Class<T> valueClass, MemberValueConsumer<T> consumer)
public boolean isPublic()
public boolean isANonStaticInnerClass()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object