public void after_add_GetEntityState_is_Changed() { EntityTrackingStates expected = EntityTrackingStates.HasBackwardChanges; ChangeTrackingService svc = new ChangeTrackingService(); PersonCollection p = new PersonCollection( svc ); p.Add( new Person( svc, false ) ); p.Add( new Person( svc, false ) ); EntityTrackingStates actual = svc.GetEntityState( p ); actual.Should().Be.EqualTo( expected ); }
public void changeTrackingService_using_atomicOperation_after_operation_complete_entityState_should_be_changed() { var target = new ChangeTrackingService(); var person = new Person( target ); target.AcceptChanges(); using( var op = target.BeginAtomicOperation() ) { person.Name = "Mauro"; op.Complete(); } var state = target.GetEntityState( person ); var actual = (state & EntityTrackingStates.HasBackwardChanges ) == EntityTrackingStates.HasBackwardChanges; actual.Should().Be.True(); }
public void service_on_stopTracking_removes_every_reference_to_entity() { EntityTrackingStates expected = EntityTrackingStates.None; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); p.Name = "Foo"; svc.Detach( p ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void changeTrackingService_getEntityState_using_entity_managed_by_different_service_should_return_None() { var expected = EntityTrackingStates.None; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( new ChangeTrackingService(), true ); var actual = svc.GetEntityState( p ); actual.Should().Be.EqualTo( expected ); }
public void entityMemento_ctor_requesting_transient_registration_using_base_iMemento_to_suspended_memento_do_not_register_entity_as_transient() { EntityTrackingStates expected = EntityTrackingStates.None; using( var svc = new ChangeTrackingService() ) { svc.Suspend(); var target = this.CreateMock( true ); ( ( IMemento )target ).Memento = svc; EntityTrackingStates actual = svc.GetEntityState( target ); actual.Should().Be.EqualTo( expected ); } }
public void changeTrackingService_using_beginAtomicOperation_getEntityState_should_return_valid_entity_state() { var target = new ChangeTrackingService(); var person = new Person( target ); var list = new PersonCollection( target ); using( var op = target.BeginAtomicOperation() ) { person.Name = "Mauro"; list.Add( person ); person.Name = "Mauro Servienti"; op.Complete(); } var actual = target.GetEntityState( person ); actual.Should().Be.EqualTo( EntityTrackingStates.HasBackwardChanges | EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove ); }
public void if_entity_is_iComponent_on_Disposed_entity_is_removed_from_transient() { ChangeTrackingService svc = new ChangeTrackingService(); EntityTrackingStates expected = EntityTrackingStates.None; Person p = null; using( p = new Person( svc, false ) ) { svc.RegisterTransient( p, false ); } EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void entity_registeredAsTransient_with_autoRemove_on_Undo_is_transient() { ChangeTrackingService svc = new ChangeTrackingService(); EntityTrackingStates expected = EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove; Person p = new Person( svc ); svc.Undo(); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void changeTrackingService_revert_normal_entity_registered_transient_with_no_autoRemove_and_changes_before_bookmark_creation_should_remain_transient() { var expected = EntityTrackingStates.IsTransient | EntityTrackingStates.HasBackwardChanges; var memento = new ChangeTrackingService(); var person = new Person( memento, false ); memento.RegisterTransient( person, false ); person.Name = "Mauro"; var bookmark = memento.CreateBookmark(); new Person( memento, true ); memento.Revert( bookmark ); var actual = memento.GetEntityState( person ); actual.Should().Be.EqualTo( expected ); }
public void tansientEntity_afterPropertyChanges_GetEntityState_IsTransient_AutoRemove_HasBackwardChanges() { EntityTrackingStates expected = EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove | EntityTrackingStates.HasBackwardChanges; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); p.Name = "Mauro"; EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void afterPropertyChanges_GetEntityState_is_Changed() { EntityTrackingStates expected = EntityTrackingStates.HasBackwardChanges; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc, false ); p.Name = "Mauro"; EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void service_successfully_revert_to_a_valid_bookmark_created_at_initial_state_and_entity_is_no_more_transient() { EntityTrackingStates expected = EntityTrackingStates.None; ChangeTrackingService svc = new ChangeTrackingService(); IBookmark bmk = svc.CreateBookmark(); Person p = new Person( svc ); p.Name = "foo.."; p.Name = "foo once again..."; svc.Revert( bmk ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void after_mutual_exclusive_actions_entity_state_is_HasBackwardChanges() { EntityTrackingStates expected = EntityTrackingStates.HasBackwardChanges; IChangeTrackingService svc = new ChangeTrackingService(); PersonCollection p = new PersonCollection( svc ); p.Add( new Person( svc, false ) ); p.RemoveAt( 0 ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void after_acceptChanges_entity_is_no_more_changed() { EntityTrackingStates expected = EntityTrackingStates.None; ChangeTrackingService svc = new ChangeTrackingService(); PersonCollection p = new PersonCollection( svc ); p.Add( new Person( null, false ) ); svc.AcceptChanges(); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void unchangedEntity_service_getEntityState_is_None() { EntityTrackingStates expected = EntityTrackingStates.None; ChangeTrackingService svc = new ChangeTrackingService(); PersonCollection p = new PersonCollection( svc ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void changeTrackingService_revert_normal_entity_registered_transient_with_changes_after_bookmark_creation_is_no_more_transient() { var expected = EntityTrackingStates.None; var memento = new ChangeTrackingService(); var bookmark = memento.CreateBookmark(); var person = new Person( memento, true ); person.Name = "Mauro"; memento.Revert( bookmark ); var actual = memento.GetEntityState( person ); actual.Should().Be.EqualTo( expected ); }
public void changeTrackingService_revert_normal_entity_registered_transient_with_no_autoRemove_and_no_changes_after_bookmark_creation_is_still_transient() { var expected = EntityTrackingStates.IsTransient; var memento = new ChangeTrackingService(); var bookmark = memento.CreateBookmark(); var person = new Person( memento, false ); memento.RegisterTransient( person, false ); memento.Revert( bookmark ); var actual = memento.GetEntityState( person ); actual.Should().Be.EqualTo( expected ); }
public void service_registerTransient_valid_reference_and_explicit_autoRemove_false() { EntityTrackingStates expected = EntityTrackingStates.IsTransient; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc, false ); svc.RegisterTransient( p, false ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void after_explicit_registerAsTransient_with_autoRemove_false_entityTrackingStates_is_transient() { ChangeTrackingService svc = new ChangeTrackingService(); EntityTrackingStates expected = EntityTrackingStates.IsTransient; Person p = new Person( svc, false ); svc.RegisterTransient( p, false ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void service_unregisterTransient_valid_reference() { ChangeTrackingService svc = new ChangeTrackingService(); EntityTrackingStates expected = EntityTrackingStates.None; Person p = new Person( svc, true ); svc.UnregisterTransient( p ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void entity_registeredAsTransient_without_autoRemove_on_AcceptChanges_is_no_more_transient() { ChangeTrackingService svc = new ChangeTrackingService(); EntityTrackingStates expected = EntityTrackingStates.None; Person p = new Person( svc, false ); svc.RegisterTransient( p, false ); svc.AcceptChanges(); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void tansientEntity_GetEntityState_is_Transient_and_AutoRemove() { EntityTrackingStates expected = EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void after_rejectChanges_entity_is_no_more_changed() { EntityTrackingStates expected = EntityTrackingStates.None; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); p.Name = "Mauro"; svc.RejectChanges(); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void service_on_undo_of_last_change_entity_if_not_tansient_has_only_forward_changes() { EntityTrackingStates expected = EntityTrackingStates.HasForwardChanges; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc, false ); p.Name = "Mauro"; svc.Undo(); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void service_on_undo_of_last_change_entity_if_tansient_has_forward_changes_and_is_transient() { EntityTrackingStates expected = EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove | EntityTrackingStates.HasForwardChanges; ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); p.Name = "Mauro"; svc.Undo(); EntityTrackingStates actual = svc.GetEntityState( p ); Assert.AreEqual<EntityTrackingStates>( expected, actual ); }
public void entityMemento_ctor_requesting_transient_registration_using_base_iMemento_successfully_register_entity_as_transient() { EntityTrackingStates expected = EntityTrackingStates.IsTransient | EntityTrackingStates.AutoRemove; using( ChangeTrackingService svc = new ChangeTrackingService() ) { var target = this.CreateMock( true ); ( ( IMemento )target ).Memento = svc; EntityTrackingStates actual = svc.GetEntityState( target ); actual.Should().Be.EqualTo( expected ); } }