package org.pitest.mutationtest.engine; import static org.pitest.mutationtest.LocationMother.aMutationId; import java.util.Collections; import java.util.List; import org.pitest.classinfo.ClassName; import org.pitest.coverage.TestInfo; import org.pitest.quickbuilder.Builder; import org.pitest.quickbuilder.Generator; import org.pitest.quickbuilder.SequenceBuilder; import org.pitest.quickbuilder.builders.QB; public class MutationDetailsMother { public interface MutationDetailsBuilder extends SequenceBuilder<MutationDetails> { MutationDetailsBuilder withId(Builder<MutationIdentifier> id); MutationDetailsBuilder withId(MutationIdentifier id); MutationDetailsBuilder withFilename(String filename); MutationDetailsBuilder withBlock(int block); MutationDetailsBuilder withLineNumber(int lineNumber); MutationDetailsBuilder withDescription(String desc); MutationDetailsBuilder withTestsInOrder(List<TestInfo> tests); MutationDetailsBuilder withIsInFinallyBlock(boolean b); MutationDetailsBuilder withPoison(boolean b); MutationIdentifier _Id(); String _Filename(); int _Block(); int _LineNumber(); String _Description(); boolean _IsInFinallyBlock(); boolean _Poison(); List<TestInfo> _TestsInOrder(); } public static MutationDetailsBuilder aMutationDetail() { return QB.builder(MutationDetailsBuilder.class, seed()).withBlock(0) .withDescription("A mutation").withFilename("foo.java") .withId(aMutationId()).withLineNumber(42).withIsInFinallyBlock(false) .withPoison(false).withTestsInOrder(Collections.<TestInfo> emptyList()); } private static Generator<MutationDetailsBuilder, MutationDetails> seed() { return new Generator<MutationDetailsBuilder, MutationDetails>() { @Override public MutationDetails generate(MutationDetailsBuilder b) { MutationDetails md = new MutationDetails(b._Id(), b._Filename(), b._Description(), b._LineNumber(), b._Block(), b._IsInFinallyBlock(), b._Poison()); md.addTestsInOrder(b._TestsInOrder()); return md; } }; } public static MutationDetails makeMutation() { return makeMutation(ClassName.fromString("foo")); } public static MutationDetails makeMutation(final ClassName clazz) { return new MutationDetails(new MutationIdentifier(Location.location(clazz, new MethodName("aMethod"), "()V"), 1, "mutatorId"), "foo.java", "A mutation", 0, 0); } }