Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

/**
* Generates a {@link CombinableArbitrary} by {@link ArbitraryIntrospector}.
* It uses the {@link PropertyGenerator} for the given {@link ArbitraryIntrospector}.
*/
@API(since = "0.6.2", status = Status.MAINTAINED)
public final class IntrospectedArbitraryGenerator implements ArbitraryGenerator {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,7 @@
import com.navercorp.fixturemonkey.api.arbitrary.JavaTimeArbitraryGeneratorSet;
import com.navercorp.fixturemonkey.api.arbitrary.JavaTypeArbitraryGeneratorSet;
import com.navercorp.fixturemonkey.api.introspector.ArbitraryIntrospector;
import com.navercorp.fixturemonkey.api.introspector.ArbitraryIntrospectorResult;
import com.navercorp.fixturemonkey.api.introspector.ArrayIntrospector;
import com.navercorp.fixturemonkey.api.introspector.BeanArbitraryIntrospector;
import com.navercorp.fixturemonkey.api.introspector.BooleanIntrospector;
import com.navercorp.fixturemonkey.api.introspector.EnumIntrospector;
import com.navercorp.fixturemonkey.api.introspector.FunctionalInterfaceArbitraryIntrospector;
Expand All @@ -56,10 +54,15 @@
import com.navercorp.fixturemonkey.api.matcher.AssignableTypeMatcher;
import com.navercorp.fixturemonkey.api.matcher.MatcherOperator;

/**
* This is a builder to generate the default {@link ArbitraryGenerator}.
* It is for Java types. For example, primitives, collections, maps, etc.
*/
@SuppressWarnings("UnusedReturnValue")
@API(since = "0.4.0", status = Status.MAINTAINED)
@API(since = "0.4.0", status = Status.INTERNAL)
public final class JavaDefaultArbitraryGeneratorBuilder {
public static final ArbitraryIntrospector JAVA_INTROSPECTOR = new MatchArbitraryIntrospector(
@Deprecated
public static final ArbitraryIntrospector UNCONSTRAINT_JAVA_INTROSPECTOR = new MatchArbitraryIntrospector(
Arrays.asList(
new BooleanIntrospector(),
new EnumIntrospector(),
Expand Down Expand Up @@ -88,30 +91,27 @@ public final class JavaDefaultArbitraryGeneratorBuilder {
new SingleGenericCollectionIntrospector()
)
);
public static final ArbitraryIntrospector DEFAULT_FALLBACK_INTROSPECTOR =
(context) -> ArbitraryIntrospectorResult.NOT_INTROSPECTED;

private ArbitraryIntrospector priorityIntrospector = JavaDefaultArbitraryGeneratorBuilder.JAVA_INTROSPECTOR;
/**
* It contains the Java type, which cannot be constrained programmatically.
* It may vary from time to time.
*/
private ArbitraryIntrospector unconstraintJavaIntrospector =
JavaDefaultArbitraryGeneratorBuilder.UNCONSTRAINT_JAVA_INTROSPECTOR;
private ArbitraryIntrospector containerIntrospector =
JavaDefaultArbitraryGeneratorBuilder.JAVA_CONTAINER_INTROSPECTOR;
private ArbitraryIntrospector objectIntrospector = BeanArbitraryIntrospector.INSTANCE;

private ArbitraryIntrospector fallbackIntrospector = DEFAULT_FALLBACK_INTROSPECTOR;
private JavaTypeArbitraryGeneratorSet javaTypeArbitraryGeneratorSet = null;
private JavaTimeArbitraryGeneratorSet javaTimeArbitraryGeneratorSet = null;

JavaDefaultArbitraryGeneratorBuilder() {
}

public JavaDefaultArbitraryGeneratorBuilder priorityIntrospector(ArbitraryIntrospector priorityIntrospector) {
this.priorityIntrospector = priorityIntrospector;
return this;
}

public JavaDefaultArbitraryGeneratorBuilder priorityIntrospector(
UnaryOperator<ArbitraryIntrospector> priorityIntrospector
@Deprecated
public JavaDefaultArbitraryGeneratorBuilder unconstraintJavaIntrospector(
UnaryOperator<ArbitraryIntrospector> unconstraintJavaIntrospectorOperator
) {
this.priorityIntrospector = priorityIntrospector.apply(this.priorityIntrospector);
this.unconstraintJavaIntrospector = unconstraintJavaIntrospectorOperator.apply(unconstraintJavaIntrospector);
return this;
}

Expand All @@ -127,30 +127,6 @@ public JavaDefaultArbitraryGeneratorBuilder containerIntrospector(
return this;
}

public JavaDefaultArbitraryGeneratorBuilder objectIntrospector(ArbitraryIntrospector objectIntrospector) {
this.objectIntrospector = objectIntrospector;
return this;
}

public JavaDefaultArbitraryGeneratorBuilder objectIntrospector(
UnaryOperator<ArbitraryIntrospector> objectIntrospector
) {
this.objectIntrospector = objectIntrospector.apply(this.objectIntrospector);
return this;
}

public JavaDefaultArbitraryGeneratorBuilder fallbackIntrospector(ArbitraryIntrospector fallbackIntrospector) {
this.fallbackIntrospector = fallbackIntrospector;
return this;
}

public JavaDefaultArbitraryGeneratorBuilder fallbackIntrospector(
UnaryOperator<ArbitraryIntrospector> fallbackIntrospector
) {
this.fallbackIntrospector = fallbackIntrospector.apply(this.fallbackIntrospector);
return this;
}

public JavaDefaultArbitraryGeneratorBuilder javaTypeArbitraryGeneratorSet(
JavaTypeArbitraryGeneratorSet javaTypeArbitraryGeneratorSet
) {
Expand All @@ -171,10 +147,8 @@ public IntrospectedArbitraryGenerator build() {
Arrays.asList(
new JavaArbitraryIntrospector(this.javaTypeArbitraryGeneratorSet),
new JavaTimeArbitraryIntrospector(this.javaTimeArbitraryGeneratorSet),
this.priorityIntrospector,
this.containerIntrospector,
this.objectIntrospector,
this.fallbackIntrospector
this.unconstraintJavaIntrospector,
this.containerIntrospector
)
)
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public final class FixtureMonkeyOptions {
),
MatcherOperator.exactTypeMatchOperator(
GeneratingWildcardType.class,
context -> new ArbitraryIntrospectorResult(CombinableArbitrary.from(new Object()))
context -> ArbitraryIntrospectorResult.NOT_INTROSPECTED
)
);
public static final ObjectPropertyGenerator DEFAULT_OBJECT_PROPERTY_GENERATOR =
Expand Down Expand Up @@ -133,6 +133,8 @@ public final class FixtureMonkeyOptions {
context -> NOT_NULL_INJECT
)
);
public static final ArbitraryIntrospector DEFAULT_FALLBACK_INTROSPECTOR =
(context) -> new ArbitraryIntrospectorResult(CombinableArbitrary.from((Object)null));

static {
List<String> defaultJavaPackages = new ArrayList<>();
Expand Down
Loading