public void Complex_current_value_can_be_set_and_the_actual_complex_object_is_set() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); var entity = (FakeWithProps)entityEntry.Entity; var complexObject = new FakeWithProps { ValueTypeProp = -2, ComplexProp = new FakeWithProps { ValueTypeProp = -3 } }; propEntry.CurrentValue = complexObject; Assert.Same(entity.ComplexProp, complexObject); Assert.Equal(-2, entity.ComplexProp.ValueTypeProp); Assert.Equal(-3, entity.ComplexProp.ComplexProp.ValueTypeProp); Assert.Equal(11, entityEntry.CurrentValues["ValueTypeProp"]); Assert.Equal(-2, ((InternalPropertyValues)entityEntry.CurrentValues["ComplexProp"])["ValueTypeProp"]); Assert.Equal( -3, ((InternalPropertyValues)((InternalPropertyValues)entityEntry.CurrentValues["ComplexProp"])["ComplexProp"])[ "ValueTypeProp"]); }
public void IsModified_returns_false_if_property_is_not_in_modified_list() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.RefTypePropertyMetadata); Assert.False(propEntry.IsModified); }
public void IsModified_returns_true_if_property_is_in_modified_list() { // Note that CreateMockInternalEntry sets ValueTypeProp as modified var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ValueTypePropertyMetadata); Assert.True(propEntry.IsModified); }
public void Generic_DbPropertyEntry_Name_returns_name_of_property_from_internal_entry() { var internalEntry = new InternalEntityPropertyEntry( new Mock <InternalEntityEntryForMock <FakeEntity> >().Object, FakeEntity.FakeNamedFooPropertyMetadata); Assert.Equal("Foo", internalEntry.Name); }
public void Scalar_original_value_can_be_set() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ValueTypePropertyMetadata); propEntry.OriginalValue = -1; Assert.Equal(-1, entityEntry.OriginalValues["ValueTypeProp"]); }
public void Scalar_original_value_can_be_read() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ValueTypePropertyMetadata); var value = propEntry.OriginalValue; Assert.Equal(21, value); }
public void Scalar_original_value_can_be_set_to_null() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.RefTypePropertyMetadata); propEntry.OriginalValue = null; Assert.Null(entityEntry.OriginalValues["RefTypeProp"]); }
private static void SetWrongComplexTypeTest(Action<InternalEntityPropertyEntry> setValue) { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); Assert.Equal( Strings.DbPropertyValues_AttemptToSetValuesFromWrongObject(typeof(Random).Name, typeof(FakeWithProps).Name), Assert.Throws<ArgumentException>(() => setValue(propEntry)).Message); }
public void Current_value_for_complex_property_cannot_be_set_to_null() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); Assert.Equal( Strings.DbPropertyValues_ComplexObjectCannotBeNull("ComplexProp", "FakeWithProps"), Assert.Throws <InvalidOperationException>(() => propEntry.CurrentValue = null).Message); }
private static void SetWrongComplexTypeTest(Action <InternalEntityPropertyEntry> setValue) { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); Assert.Equal( Strings.DbPropertyValues_AttemptToSetValuesFromWrongObject(typeof(Random).Name, typeof(FakeWithProps).Name), Assert.Throws <ArgumentException>(() => setValue(propEntry)).Message); }
public void Original_value_returned_for_complex_property_is_object_instance() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); var value = (FakeWithProps)propEntry.OriginalValue; Assert.Equal(22, value.ValueTypeProp); Assert.Equal(23, value.ComplexProp.ValueTypeProp); }
private static void SetWrongTypeTest(Action <InternalEntityPropertyEntry> setValue) { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.RefTypePropertyMetadata); Assert.Equal( Strings.DbPropertyValues_WrongTypeForAssignment( typeof(Random).Name, "RefTypeProp", typeof(string).Name, typeof(FakeWithProps).Name), Assert.Throws <InvalidOperationException>(() => setValue(propEntry)).Message); }
private static void SetWrongTypeTest(Action<InternalEntityPropertyEntry> setValue) { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.RefTypePropertyMetadata); Assert.Equal( Strings.DbPropertyValues_WrongTypeForAssignment( typeof(Random).Name, "RefTypeProp", typeof(string).Name, typeof(FakeWithProps).Name), Assert.Throws<InvalidOperationException>(() => setValue(propEntry)).Message); }
public void Scalar_original_value_can_be_read_when_when_it_is_null() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.RefTypePropertyMetadata); propEntry.OriginalValue = null; var value = propEntry.OriginalValue; Assert.Null(value); }
public void IsModified_can_be_set_to_false_when_it_is_currently_false() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.RefTypePropertyMetadata); Assert.False(propEntry.IsModified); propEntry.IsModified = false; Assert.False(propEntry.IsModified); }
public void Current_value_returned_for_complex_property_is_actual_complex_object_instance() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); var entity = (FakeWithProps)entityEntry.Entity; var value = (FakeWithProps)propEntry.CurrentValue; Assert.Same(entity.ComplexProp, value); Assert.Equal(12, value.ValueTypeProp); Assert.Equal(13, value.ComplexProp.ValueTypeProp); }
public void IsModified_can_be_set_to_true_when_it_is_currently_false() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.RefTypePropertyMetadata); var mockStateEntry = Mock.Get(entityEntry.ObjectStateEntry); Assert.False(propEntry.IsModified); propEntry.IsModified = true; Assert.True(propEntry.IsModified); mockStateEntry.Verify(e => e.SetModifiedProperty("RefTypeProp")); }
public void Current_value_returned_for_complex_property_can_be_null() { var properties = new Dictionary <string, object> { { "ComplexProp", null } }; var currentValues = new TestInternalPropertyValues <FakeWithProps>(properties, new[] { "ComplexProp" }); var entityEntry = FakeWithProps.CreateMockInternalEntityEntry(currentValues).Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); var value = propEntry.CurrentValue; Assert.Null(value); }
public void Current_value_for_complex_property_cannot_be_set_to_null_even_if_it_is_already_null() { var properties = new Dictionary <string, object> { { "ComplexProp", null } }; var currentValues = new TestInternalPropertyValues <FakeWithProps>(properties, new[] { "ComplexProp" }); var entityEntry = FakeWithProps.CreateMockInternalEntityEntry(currentValues).Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); Assert.Equal( Strings.DbPropertyValues_ComplexObjectCannotBeNull("ComplexProp", "FakeWithProps"), Assert.Throws <InvalidOperationException>(() => propEntry.CurrentValue = null).Message); }
public void Current_value_for_complex_property_cannot_be_set_to_instance_with_nested_null_complex_property() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); var complexObject = new FakeWithProps { ValueTypeProp = -2, ComplexProp = null }; Assert.Equal( Strings.DbPropertyValues_ComplexObjectCannotBeNull("ComplexProp", typeof(FakeWithProps).Name), Assert.Throws <InvalidOperationException>(() => propEntry.CurrentValue = complexObject).Message); }
public void Complex_original_value_can_be_set() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); propEntry.OriginalValue = new FakeWithProps { ValueTypeProp = -2, ComplexProp = new FakeWithProps { ValueTypeProp = -3 } }; Assert.Equal(21, entityEntry.OriginalValues["ValueTypeProp"]); Assert.Equal(-2, ((InternalPropertyValues)entityEntry.OriginalValues["ComplexProp"])["ValueTypeProp"]); Assert.Equal( -3, ((InternalPropertyValues)((InternalPropertyValues)entityEntry.OriginalValues["ComplexProp"])["ComplexProp"])[ "ValueTypeProp"]); }
public void Current_value_for_complex_property_cannot_be_set_to_null() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); Assert.Equal( Strings.DbPropertyValues_ComplexObjectCannotBeNull("ComplexProp", "FakeWithProps"), Assert.Throws<InvalidOperationException>(() => propEntry.CurrentValue = null).Message); }
public void Generic_DbPropertyEntry_Name_returns_name_of_property_from_internal_entry() { var internalEntry = new InternalEntityPropertyEntry( new Mock<InternalEntityEntryForMock<FakeEntity>>().Object, FakeEntity.FakeNamedFooPropertyMetadata); Assert.Equal("Foo", internalEntry.Name); }
public void Current_value_returned_for_complex_property_can_be_null() { var properties = new Dictionary<string, object> { { "ComplexProp", null } }; var currentValues = new TestInternalPropertyValues<FakeWithProps>(properties, new[] { "ComplexProp" }); var entityEntry = FakeWithProps.CreateMockInternalEntityEntry(currentValues).Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); var value = propEntry.CurrentValue; Assert.Null(value); }
public void Current_value_for_complex_property_cannot_be_set_to_instance_with_nested_null_complex_property() { var entityEntry = FakeWithProps.CreateMockInternalEntityEntry().Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); var complexObject = new FakeWithProps { ValueTypeProp = -2, ComplexProp = null }; Assert.Equal( Strings.DbPropertyValues_ComplexObjectCannotBeNull("ComplexProp", typeof(FakeWithProps).Name), Assert.Throws<InvalidOperationException>(() => propEntry.CurrentValue = complexObject).Message); }
public void Current_value_for_complex_property_cannot_be_set_to_null_even_if_it_is_already_null() { var properties = new Dictionary<string, object> { { "ComplexProp", null } }; var currentValues = new TestInternalPropertyValues<FakeWithProps>(properties, new[] { "ComplexProp" }); var entityEntry = FakeWithProps.CreateMockInternalEntityEntry(currentValues).Object; var propEntry = new InternalEntityPropertyEntry(entityEntry, FakeWithProps.ComplexPropertyMetadata); Assert.Equal( Strings.DbPropertyValues_ComplexObjectCannotBeNull("ComplexProp", "FakeWithProps"), Assert.Throws<InvalidOperationException>(() => propEntry.CurrentValue = null).Message); }