package component.customisation; import com.flextrade.jfixture.JFixture; import com.flextrade.jfixture.customisation.OmitAutoPropertyCustomisation; import org.junit.Test; import testtypes.TypeWithFields; import testtypes.TypeWithProperties; import testtypes.inheritance.SubType; import testtypes.inheritance.SuperType; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; public class TestOmitAutoPropertyCustomisation { @Test public void when_set_globally_generates_types_with_no_properties_set() { JFixture fixture = new JFixture(); fixture.customise(new OmitAutoPropertyCustomisation()); TypeWithProperties type = fixture.create(TypeWithProperties.class); assertNull(type.getSymbol()); assertEquals(0, type.getSize()); } @Test public void when_set_globally_generates_types_with_no_fields_set() { JFixture fixture = new JFixture(); fixture.customise(new OmitAutoPropertyCustomisation()); TypeWithFields type = fixture.create(TypeWithFields.class); assertNull(type.symbol); assertEquals(0, type.size); } @Test public void when_set_for_specific_class_generates_types_with_no_fields_set() { JFixture fixture = new JFixture(); fixture.customise(new OmitAutoPropertyCustomisation(TypeWithFields.class)); TypeWithFields type = fixture.create(TypeWithFields.class); assertNull(type.symbol); assertEquals(0, type.size); } @Test public void when_set_for_specific_class_generates_types_with_fields_set_for_other_types() { JFixture fixture = new JFixture(); fixture.customise(new OmitAutoPropertyCustomisation(TypeWithFields.class)); TypeWithProperties type = fixture.create(TypeWithProperties.class); assertNotNull(type.getSymbol()); assertTrue(type.getSize() > 0); } @Test public void when_sub_typing_a_request_fields_are_not_set_on_sub_type() { JFixture fixture = new JFixture(); fixture.customise().useSubType(SuperType.class, SubType.class); fixture.customise(new OmitAutoPropertyCustomisation(SubType.class)); SuperType type = fixture.create(SuperType.class); assertNull(type.superString); assertNull(((SubType) type).subString); } }