public void execute(Object request, Object specimen, SpecimenContext specimenContext) { if (specimen == null) return; if (specimenContext == null) throw new IllegalArgumentException("specimenContext must not be null"); this.populateSetters(request, specimen, specimenContext); this.populateFields(request, specimen, specimenContext); }
@Override public SpecimenBuilder transform(SpecimenBuilder builder) { return new AutoPropertyBuilder( builder, new AutoPropertyPopulater(), new AllSatisfiedCompositePropertySpecification(this.allSpecifications)); }
public AutoPropertyBehaviour() { this.allSpecifications = new ArrayList<Specification>(); this.allSpecifications.add(new DefaultAutoPropertySpecification()); }
@Override public void customise(JFixture fixture) { AutoPropertyBehaviour apb = fixture.behaviours().find(AutoPropertyBehaviour.class); if (apb == null) return; apb.specifications().add(this.specification); } }
private void populateFields(Object request, Object specimen, SpecimenContext specimenContext) { Class specimenClass = specimen.getClass(); Field[] fields = specimenClass.getFields(); for (Field field : fields) { if (isSettable(field)) { FieldRequest fieldRequest = getGenericFieldRequest(request, field); Object propertySpecimen = specimenContext.resolve(fieldRequest); if (!(propertySpecimen instanceof NoSpecimen)) { trySetField(specimen, field, propertySpecimen); } } } }
private void populateSetters(Object request, Object specimen, SpecimenContext specimenContext) { Class specimenClass = specimen.getClass(); Method[] methods = specimenClass.getMethods(); for (Method method : methods) { if (PropertyUtil.isMethodASetterProperty(method, specimenClass)) { MethodRequest methodRequest = getGenericMethodRequest(request, method); Object propertySpecimen = specimenContext.resolve(methodRequest); if (!(propertySpecimen instanceof NoSpecimen)) { trySetProperty(specimen, method, propertySpecimen); } } } }
@Override public void customise(JFixture fixture) { if (fixture.behaviours().find(AutoPropertyBehaviour.class) == null) { fixture.behaviours().add(new AutoPropertyBehaviour()); } } }
@Override public void customise(JFixture fixture) { AutoPropertyBehaviour autoPropertyBehaviour = fixture.behaviours().find(AutoPropertyBehaviour.class); if(autoPropertyBehaviour == null) return; autoPropertyBehaviour.specifications().add(new MockitoAutoPropertySpecification()); fixture.addBuilderToEndOfPipeline(new MockitoRelay()); } }
@Override public void customise(JFixture fixture) { AutoPropertyBehaviour autoPropertyBehaviour = fixture.behaviours().find(AutoPropertyBehaviour.class); if (autoPropertyBehaviour != null) { autoPropertyBehaviour.specifications().add(new JodaTimeSpecification()); } fixture.addBuilderToStartOfPipeline(new ReadableInstantRelay()); fixture.addBuilderToStartOfPipeline(new ReadableIntervalRelay()); fixture.addBuilderToStartOfPipeline(new ReadableDurationRelay()); fixture.addBuilderToStartOfPipeline(new ReadablePartialRelay()); fixture.addBuilderToStartOfPipeline(new ReadablePeriodRelay()); fixture.addBuilderToStartOfPipeline(new PartialRelay()); fixture.addBuilderToStartOfPipeline(new BasePeriodRelay()); fixture.addBuilderToStartOfPipeline(new BaseSingleFieldPeriodRelay()); fixture.addBuilderToStartOfPipeline(new BasePartialRelay()); fixture.addBuilderToStartOfPipeline(new BaseLocalRelay()); fixture.addBuilderToStartOfPipeline(new BaseDurationRelay()); fixture.addBuilderToStartOfPipeline(new BaseIntervalRelay()); fixture.addBuilderToStartOfPipeline(new BaseDateTimeRelay()); fixture.addBuilderToStartOfPipeline(new DateTimeZoneBuilder()); fixture.addBuilderToStartOfPipeline(new ChronologyBuilder()); fixture.addBuilderToStartOfPipeline(new ChronologyBuilder()); } }