public void AsTrackable_Should_Not_Track_Properties_That_Are_Marked_DoNotTrack_And_Be_Ok_That_It_Is_Not_Virtual() { var order = Helper.GetOrder(); Order trackable = order.AsTrackable(); trackable.LeadId = 123; trackable.CastToIChangeTrackable().ChangeTrackingStatus.Should().Be(ChangeStatus.Unchanged); trackable.CastToIChangeTrackable().ChangedProperties.Should().NotContain(nameof(Order.LeadId)); }
public void AsTrackable_DoNotTrack_Should_Not_Change_Status() { var order = Helper.GetOrder(); Order trackable = order.AsTrackable(); const string stateValue = "State"; trackable.Address.State = stateValue; trackable.CastToIChangeTrackable().ChangeTrackingStatus.Should().Equals(ChangeStatus.Unchanged); trackable.CastToIChangeTrackable().RejectChanges(); trackable.Address.State.Should().Be(stateValue); }
public void UnDelete_Should_Move_Back_Item_From_DeletedItems_And_Change_Back_Status() { var orders = Helper.GetOrdersIList(); var trackable = orders.AsTrackable(); Order first = trackable.First(); trackable.Remove(first); trackable.CastToIChangeTrackableCollection().UnDelete(first); trackable.Should().Contain(first); trackable.CastToIChangeTrackableCollection().DeletedItems.Should().NotContain(first).And.BeEmpty(); first.CastToIChangeTrackable().ChangeTrackingStatus.Should().Be(ChangeStatus.Unchanged); }
public void Change_Property_From_Value_To_Null_Should_Stop_Notification() { Order trackable = new Order { Id = 321, Address = new Address { AddressId = 0 } }.AsTrackable(); Address trackableAddress = trackable.Address; trackable.Address = null; trackable.CastToIChangeTrackable().MonitorEvents(); trackableAddress.AddressId = 2; trackable.ShouldNotRaisePropertyChangeFor(o => o.Address); }