public void CreatePropertySetter_can_create_a_delegate_for_a_nullable_type_with_base_setter()
            {
                var entity = new ClassWithoutSetters();

                DelegateFactory.CreatePropertySetter(
                    typeof(ClassWithoutSetters),
                    typeof(ClassWithoutSetters).GetAnyProperty("NullableProperty"),
                    allowNull: true)(entity, 7);

                Assert.Equal(7, entity.NullableProperty);
            }
            public void CreatePropertySetter_can_create_a_delegate_for_a_value_type_with_base_setter()
            {
                var entity = new ClassWithoutSetters();

                DelegateFactory.CreatePropertySetter(
                    typeof(ClassWithoutSetters),
                    typeof(ClassWithoutSetters).GetAnyProperty("InternalValueTypeProperty"),
                    allowNull: false)(entity, 7);

                Assert.Equal(7, entity.InternalValueTypeProperty);
            }
            public void CreateNavigationPropertySetter_creates_a_setter_delegate_for_non_public_reference_property_with_base_setter()
            {
                var target = new InternalClass();
                var entity = new ClassWithoutSetters();

                DelegateFactory.CreateNavigationPropertySetter(
                    typeof(ClassWithoutSetters),
                    typeof(ClassWithoutSetters).GetAnyProperty("InternalNavProperty"))(entity, target);

                Assert.Same(target, entity.InternalNavProperty);
            }
            public void CreatePropertySetter_creates_a_setter_delegate_for_a_non_public_property_with_base_setter()
            {
                var target = new InternalClass();
                var entity = new ClassWithoutSetters();

                DelegateFactory.CreatePropertySetter(
                    typeof(ClassWithoutSetters),
                    typeof(ClassWithoutSetters).GetProperty("InternalNavProperty", BindingFlags.Instance | BindingFlags.NonPublic),
                    allowNull: true)(entity, target);

                Assert.Same(target, entity.InternalNavProperty);
            }
            public void CreateNavigationPropertySetter_creates_a_setter_delegate_for_non_public_reference_property_with_base_setter()
            {
                var target = new InternalClass();
                var entity = new ClassWithoutSetters();

                DelegateFactory.CreateNavigationPropertySetter(
                    typeof(ClassWithoutSetters),
                    typeof(ClassWithoutSetters).GetProperty("InternalNavProperty", BindingFlags.Instance | BindingFlags.NonPublic))(entity, target);

                Assert.Same(target, entity.InternalNavProperty);
            }
            public void CreatePropertySetter_can_create_a_delegate_for_a_nullable_type_with_base_setter()
            {
                var entity = new ClassWithoutSetters();

                DelegateFactory.CreatePropertySetter(
                    typeof(ClassWithoutSetters),
                    typeof(ClassWithoutSetters).GetProperty("NullableProperty", BindingFlags.NonPublic | BindingFlags.Instance),
                    allowNull: true)(entity, 7);

                Assert.Equal(7, entity.NullableProperty);
            }