- All Implemented Interfaces:
DiscoverySelector
DiscoverySelector
that selects a Method
or a combination of
class name, method name, and parameter types so that
TestEngines
can discover tests
or containers based on methods.
If a Java Method
is provided, the selector will return that
method and its method name, class name, and
parameter types accordingly. If a Class
and method name, a class name
and method name, or a fully qualified method name is provided,
this selector will only attempt to lazily load the class, method, or parameter
types if getJavaClass()
, getJavaMethod()
, or
getParameterTypes()
is invoked.
In this context, a Java Method
means anything that can be referenced
as a Method
on the JVM — for example, methods from Java classes
or methods from other JVM languages such Groovy, Scala, etc.
- Since:
- 1.0
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Get theClassLoader
used to load the specified class.Get the selected class name.Class
<?> Get the selectedMethod
.Get the selected method name.Deprecated.Get the names of parameter types for the selected method as aString
, typically a comma-separated list of primitive types, fully qualified class names, or array types.Class<?>[]
Get the parameter types for the selected method.int
hashCode()
Return the identifier of this selector.toString()
-
Method Details
-
getClassLoader
Get theClassLoader
used to load the specified class.- Returns:
- the
ClassLoader
; potentiallynull
- Since:
- 1.10
-
getClassName
Get the selected class name. -
getMethodName
Get the selected method name. -
getMethodParameterTypes
Deprecated.since 1.10 in favor ofgetParameterTypeNames()
Get the names of parameter types for the selected method.See
getParameterTypeNames()
for details.- Returns:
- the names of parameter types
- Since:
- 1.0
- See Also:
-
getParameterTypeNames
Get the names of parameter types for the selected method as aString
, typically a comma-separated list of primitive types, fully qualified class names, or array types.Note: the names of parameter types are provided as a single string instead of a collection in order to allow this selector to be used in a generic fashion by various test engines. It is therefore the responsibility of the caller of this method to determine how to parse the returned string.
- Returns:
- the names of parameter types supplied to this
MethodSelector
via a constructor or deduced from aMethod
or parameter types supplied via a constructor; nevernull
but potentially an empty string - Since:
- 1.10
- See Also:
-
getJavaClass
Get theClass
in which the selected method is declared, or a subclass thereof.If the
Class
was not provided, but only the name, this method attempts to lazily load theClass
based on its name and throws aPreconditionViolationException
if the class cannot be loaded.- See Also:
-
getJavaMethod
Get the selectedMethod
.If the
Method
was not provided, but only the name, this method attempts to lazily load theMethod
based on its name and throws aPreconditionViolationException
if the method cannot be loaded.- See Also:
-
getParameterTypes
Get the parameter types for the selected method.If the parameter types were not provided as
Class
references (or could not be deduced asClass
references in the constructor), this method attempts to lazily load the class reference for each parameter type based on its name and throws aJUnitException
if the class cannot be loaded.- Returns:
- the method's parameter types; never
null
but potentially an empty array if the selected method does not declare parameters - Since:
- 1.10
- See Also:
-
equals
-
hashCode
-
toString
-
toIdentifier
Description copied from interface:DiscoverySelector
Return the identifier of this selector.The returned identifier must be parsable by a corresponding
DiscoverySelectorIdentifierParser
.The default implementation returns
Optional.empty()
. Can be overridden by concrete implementations.- Specified by:
toIdentifier
in interfaceDiscoverySelector
- Returns:
- an
Optional
containing the identifier of this selector; nevernull
but potentially empty if the selector does not support identifiers
-
getParameterTypeNames()