java.lang.Object
org.junit.platform.engine.support.descriptor.ClassSource
All Implemented Interfaces:
Serializable, TestSource

@API(status=STABLE,
     since="1.0")
public class ClassSource
extends Object
implements TestSource
Class based TestSource with an optional file position.

If a Java Class reference is provided, the ClassSource will contain that Class and its class name accordingly. If a class name is provided, the ClassSource will contain the class name and will only attempt to lazily load the Class if getJavaClass() is invoked.

In this context, Java Class means anything that can be referenced as a Class on the JVM — for example, classes from other JVM languages such Groovy, Scala, etc.

Since:
1.0
See Also:
ClassSelector, Serialized Form
  • Method Details

    • from

      public static ClassSource from​(String className)
      Create a new ClassSource using the supplied class name.
      Parameters:
      className - the class name; must not be null or blank
    • from

      public static ClassSource from​(String className, FilePosition filePosition)
      Create a new ClassSource using the supplied class name and file position.
      Parameters:
      className - the class name; must not be null or blank
      filePosition - the position in the source file; may be null
    • from

      public static ClassSource from​(Class<?> javaClass)
      Create a new ClassSource using the supplied class.
      Parameters:
      javaClass - the Java class; must not be null
    • from

      public static ClassSource from​(Class<?> javaClass, FilePosition filePosition)
      Create a new ClassSource using the supplied class and file position.
      Parameters:
      javaClass - the Java class; must not be null
      filePosition - the position in the Java source file; may be null
    • getClassName

      public final String getClassName()
      Get the class name of this source.
      See Also:
      getJavaClass(), getPosition()
    • getJavaClass

      public final Class<?> getJavaClass()
      Get the Java class of this source.

      If the Class was not provided, but only the name, this method attempts to lazily load the Class based on its name and throws a PreconditionViolationException if the class cannot be loaded.

      See Also:
      getClassName(), getPosition()
    • getPosition

      public final Optional<FilePosition> getPosition()
      Get the position in the source file for the associated class, if available.
      See Also:
      getClassName(), getJavaClass()
    • equals

      public boolean equals​(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object