Interface TypeArbitrary<T>

  • All Superinterfaces:
    Arbitrary<T>

    @API(status=MAINTAINED,
         since="1.2")
    public interface TypeArbitrary<T>
    extends Arbitrary<T>
    Fluent interface to configure arbitraries that try to generate instances of a given type T from the type's available constructors and factory methods.

    When constructors and factory methods have parameters those parameters will be resolved by searching for matching registered arbitrary providers. The searching is performed either globally or in the property method's specified domain contexts.

    See Also:
    Domain, DomainContext
    • Method Detail

      • use

        TypeArbitrary<T> use​(java.lang.reflect.Executable creator)
        Add another creator (function or constructor) to be used for generating values of type T
        Parameters:
        creator - The static function or constructor
        Returns:
        the same arbitrary instance
      • usePublicConstructors

        TypeArbitrary<T> usePublicConstructors()
        Add public constructors of class T to be used for generating values of type T
        Returns:
        the same arbitrary instance
      • useAllConstructors

        TypeArbitrary<T> useAllConstructors()
        Add all constructors (public, private or package scope) of class T to be used for generating values of type T
        Returns:
        the same arbitrary instance
      • useConstructors

        TypeArbitrary<T> useConstructors​(java.util.function.Predicate<? super java.lang.reflect.Constructor<?>> filter)
        Add all constructors (public, private or package scope) of class T to be used for generating values of type T
        Parameters:
        filter - Predicate to add only those constructors for which the predicate returns true
        Returns:
        the same arbitrary instance
      • usePublicFactoryMethods

        TypeArbitrary<T> usePublicFactoryMethods()
        Add public factory methods (static methods with return type T) of class T to be used for generating values of type T
        Returns:
        the same arbitrary instance
      • useAllFactoryMethods

        TypeArbitrary<T> useAllFactoryMethods()
        Add all factory methods (static methods with return type T) of class T to be used for generating values of type T
        Returns:
        the same arbitrary instance
      • useFactoryMethods

        TypeArbitrary<T> useFactoryMethods​(java.util.function.Predicate<java.lang.reflect.Method> filter)
        Add all factory methods (static methods with return type T) of class T to be used for generating values of type T
        Parameters:
        filter - Predicate to add only those factory methods for which the predicate returns true
        Returns:
        the same arbitrary instance