com.github.nylle.javafixture.SpecimenFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javafixture Show documentation
Show all versions of javafixture Show documentation
JavaFixture is the attempt to bring Mark Seemann's AutoFixture for .NET to the Java world. Its purpose
is to generate full object graphs for use in test suites with a fluent API for customising the test objects
during generation.
package com.github.nylle.javafixture;
import com.github.nylle.javafixture.specimen.ArraySpecimen;
import com.github.nylle.javafixture.specimen.CollectionSpecimen;
import com.github.nylle.javafixture.specimen.EnumSpecimen;
import com.github.nylle.javafixture.specimen.GenericSpecimen;
import com.github.nylle.javafixture.specimen.InterfaceSpecimen;
import com.github.nylle.javafixture.specimen.MapSpecimen;
import com.github.nylle.javafixture.specimen.ObjectSpecimen;
import com.github.nylle.javafixture.specimen.PrimitiveSpecimen;
import com.github.nylle.javafixture.specimen.TimeSpecimen;
public class SpecimenFactory {
private final Context context;
public SpecimenFactory(Context context) {
this.context = context;
}
public ISpecimen build(final SpecimenType type) {
if (type.isPrimitive() || type.isBoxed() || type.asClass() == String.class) {
return new PrimitiveSpecimen<>(type, context);
}
if (type.isEnum()) {
return new EnumSpecimen<>(type);
}
if (type.isCollection()) {
return new CollectionSpecimen<>(type, context, this);
}
if (type.isMap()) {
return new MapSpecimen<>(type, context, this);
}
if (type.isParameterized()) {
return new GenericSpecimen<>(type, context, this);
}
if (type.isArray()) {
return new ArraySpecimen<>(type, context, this);
}
if (type.isTimeType()) {
return new TimeSpecimen<>(type, context);
}
if (type.isAbstract()) {
return new InterfaceSpecimen<>(type, context, this);
}
return new ObjectSpecimen<>(type, context, this);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy