package component.customisation;
import com.flextrade.jfixture.JFixture;
import com.flextrade.jfixture.SpecimenSupplier;
import com.flextrade.jfixture.customisation.TracingCustomisation;
import org.junit.Test;
import testtypes.TypeWithProperties;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class TestTracingCustomisation {
@Test
public void populates_appendable_instance_with_tracing_data() {
Appendable stringBuilder = new StringBuilder();
JFixture fixture = new JFixture();
fixture.customise(new TracingCustomisation(stringBuilder));
fixture.create(TypeWithProperties.class);
String trace = stringBuilder.toString();
assertFalse(trace.isEmpty());
}
@Test
public void null_specimens_are_traced_correctly_by_confirming_the_instance_is_null() {
Appendable stringBuilder = new StringBuilder();
JFixture fixture = new JFixture();
fixture.customise(new TracingCustomisation(stringBuilder))
.customise().lazyInstance(String.class, new SpecimenSupplier<String>() {
@Override
public String create() {
return null;
}
});
fixture.create(String.class);
String trace = stringBuilder.toString();
assertTrue(trace.contains("Created: null instance"));
}
}