public void Clone_ignores_null_nested_property_dictionary() { var properties = new Dictionary<string, object> { { "Id", 1 }, { "NestedObject", null } }; var values = new TestInternalPropertyValues<FakeTypeWithProps>(properties, new[] { "NestedObject" }); var clone = values.Clone(); Assert.Equal(1, clone["Id"]); Assert.Null(clone["NestedObject"]); }
public void Modifying_properties_on_cloned_dictionary_does_not_change_properties_on_original_dictionary_and_vice_versa() { var nestedProperties = new Dictionary<string, object> { { "Id", 2 } }; var nestedValues = new TestInternalPropertyValues<FakeTypeWithProps>(nestedProperties); var properties = new Dictionary<string, object> { { "Id", 1 }, { "NestedObject", nestedValues } }; var values = new TestInternalPropertyValues<FakeTypeWithProps>(properties, new[] { "NestedObject" }); var clone = values.Clone(); var nestedClone = (InternalPropertyValues)clone["NestedObject"]; values["Id"] = -1; nestedValues["Id"] = -2; clone["Id"] = -3; nestedClone["Id"] = -4; Assert.Equal(-1, values["Id"]); Assert.Equal(-2, nestedValues["Id"]); Assert.Equal(-3, clone["Id"]); Assert.Equal(-4, nestedClone["Id"]); }
public void Clone_clones_nested_property_dictionary_into_new_cloned_nested_dictionary() { var nestedProperties = new Dictionary<string, object> { { "Id", 2 } }; var nestedValues = new TestInternalPropertyValues<FakeTypeWithProps>(nestedProperties); var properties = new Dictionary<string, object> { { "Id", 1 }, { "NestedObject", nestedValues } }; var values = new TestInternalPropertyValues<FakeTypeWithProps>(properties, new[] { "NestedObject" }); var clone = values.Clone(); var nestedClone = (InternalPropertyValues)clone["NestedObject"]; Assert.Equal(1, clone["Id"]); Assert.Equal(2, nestedClone["Id"]); Assert.False(clone.GetItem("Id").IsComplex); Assert.True(clone.GetItem("NestedObject").IsComplex); Assert.False(nestedClone.GetItem("Id").IsComplex); }
public void Clone_can_copy_null_properties() { var properties = new Dictionary<string, object> { { "PublicNonNullStringProp", null } }; var values = new TestInternalPropertyValues<FakeTypeWithProps>(properties); var clone = values.Clone(); Assert.Null(clone["PublicNonNullStringProp"]); }
public void Clone_sets_all_properties_from_the_dictionary_into_the_new_values() { var properties = new Dictionary<string, object> { { "Id", 1 }, { "PublicStringProp", "PublicStringPropValue" }, { "PrivateStringProp", "PrivateStringPropValue" }, { "PublicIntProp", 2 }, { "PrivateIntProp", 3 }, { "PublicIntPropWithPrivateSetter", 4 }, { "PublicIntPropWithPrivateGetter", 5 }, { "PublicBinaryProp", new byte[] { 3, 1, 4, 1, 5, 9 } }, }; var values = new TestInternalPropertyValues<FakeTypeWithProps>(properties); var clone = values.Clone(); Assert.Equal(1, clone["Id"]); Assert.Equal("PublicStringPropValue", clone["PublicStringProp"]); Assert.Equal(2, clone["PublicIntProp"]); Assert.Equal("PrivateStringPropValue", clone["PrivateStringProp"]); Assert.Equal(3, clone["PrivateIntProp"]); Assert.Equal(4, clone["PublicIntPropWithPrivateSetter"]); Assert.Equal(5, clone["PublicIntPropWithPrivateGetter"]); Assert.True(DbHelpers.KeyValuesEqual(new byte[] { 3, 1, 4, 1, 5, 9 }, clone["PublicBinaryProp"])); }
public void Clone_for_a_complex_object_returns_a_new_dictionary_that_is_also_for_an_complex_object() { var values = new TestInternalPropertyValues<FakeTypeWithProps>(); var clone = values.Clone(); Assert.False(clone.IsEntityValues); }
public void Clone_for_an_entity_returns_a_new_dictionary_that_is_also_for_an_entity() { var values = new TestInternalPropertyValues<FakeTypeWithProps>(null, isEntityValues: true); var clone = values.Clone(); Assert.True(clone.IsEntityValues); }