Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }