public void GivenAutoFixtureFactory_WhenBuilding_ThenOnlyConstructorAndPublicPropertiesSet()
        {
            MixedAccessibilityDto dto = Builder <MixedAccessibilityDto> .CreateNew(new AutoFixtureFactory());

            dto.SetByCtorNoPropertySetter.ShouldNotBe(null);
            dto.SetByCtorWithPrivateSetter.ShouldNotBe(null);
            dto.SetByCtorWithPublicSetter.ShouldNotBe(null);
            dto.NotSetByCtorWithPrivateSetter.ShouldBe(null);
            dto.NotSetByCtorWithPublicSetter.ShouldNotBe(null);
        }
        public void GivenAllPropertiesFactory_WhenBuilding_ThenAllPropertiesSet()
        {
            MixedAccessibilityDto dto = Builder <MixedAccessibilityDto> .CreateNew(new AllPropertiesFactory());

            dto.SetByCtorNoPropertySetter.ShouldNotBe(null);
            dto.SetByCtorWithPrivateSetter.ShouldNotBe(null);
            dto.SetByCtorWithPublicSetter.ShouldNotBe(null);
            dto.NotSetByCtorWithPrivateSetter.ShouldNotBe(null);
            dto.NotSetByCtorWithPublicSetter.ShouldNotBe(null);
        }
        public void GivenBuilderWithFactoryOverride_WhenBuildingObject_ThenRespectOverriddenFactory()
        {
            MixedAccessibilityDto dto = Builder <MixedAccessibilityDto> .CreateNew(new CallConstructorFactory())
                                        .Set(x => x.SetByCtorWithPublicSetter, "1")
                                        .Set(x => x.SetByCtorWithPrivateSetter, "2")
                                        .Set(x => x.NotSetByCtorWithPrivateSetter, "3")
                                        .Set(x => x.NotSetByCtorWithPublicSetter, "4");

            dto.SetByCtorWithPublicSetter.ShouldBe("1");
            dto.SetByCtorWithPrivateSetter.ShouldBe("2");
            dto.NotSetByCtorWithPrivateSetter.ShouldNotBe("3");
            dto.NotSetByCtorWithPublicSetter.ShouldNotBe("4");
        }
        public void GivenBuilder_WhenBuildingObjectWithCtorAndPrivateSetters_ThenSetPrivateSettersByDefault()
        {
            MixedAccessibilityDto dto = Builder <MixedAccessibilityDto> .CreateNew()
                                        .Set(x => x.SetByCtorWithPublicSetter, "1")
                                        .Set(x => x.SetByCtorWithPrivateSetter, "2")
                                        .Set(x => x.NotSetByCtorWithPrivateSetter, "3")
                                        .Set(x => x.NotSetByCtorWithPublicSetter, "4");

            dto.SetByCtorWithPublicSetter.ShouldBe("1");
            dto.SetByCtorWithPrivateSetter.ShouldBe("2");
            dto.NotSetByCtorWithPrivateSetter.ShouldBe("3");
            dto.NotSetByCtorWithPublicSetter.ShouldBe("4");
        }
        public void GivenAutoFixtureFactoryAgainstBuilderWithModifications_WhenBuilding_ThenNoCustomisationsAreUsed()
        {
            MixedAccessibilityDto dto = Builder <MixedAccessibilityDto>
                                        .CreateNew(new AutoFixtureFactory())
                                        .Set(x => x.SetByCtorNoPropertySetter, "0")
                                        .Set(x => x.SetByCtorWithPrivateSetter, "1")
                                        .Set(x => x.SetByCtorWithPublicSetter, "2")
                                        .Set(x => x.NotSetByCtorWithPrivateSetter, "3")
                                        .Set(x => x.NotSetByCtorWithPublicSetter, "4");

            dto.SetByCtorNoPropertySetter.ShouldNotBe("0");
            dto.SetByCtorWithPrivateSetter.ShouldNotBe("1");
            dto.SetByCtorWithPublicSetter.ShouldNotBe("2");
            dto.NotSetByCtorWithPrivateSetter.ShouldNotBe("3");
            dto.NotSetByCtorWithPublicSetter.ShouldNotBe("4");
        }