public void changeTrackingService_using_beginAtomicOperation_hasTransientEntities_should_return_true_even_for_entities_created_in_the_atomic_operation() { var target = new ChangeTrackingService(); var list = new PersonCollection( target ); var person = new Person( target, false ); using( var op = target.BeginAtomicOperation() ) { target.RegisterTransient( person ); person.Name = "Mauro"; list.Add( person ); person.Name = "Mauro Servienti"; op.Complete(); } var actual = target.HasTransientEntities; actual.Should().Be.True(); }
public void after_suspend_cannot_call_RegisterTransient_with_explicit_autoRemove_false() { ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc, false ); svc.Suspend(); svc.RegisterTransient( p, false ); }
public void changeTrackingService_using_beginAtomicOperation_getEntities_should_return_all_transient_entities() { var target = new ChangeTrackingService(); var list = new PersonCollection( target ); var person = new Person( target, false ); using( var op = target.BeginAtomicOperation() ) { target.RegisterTransient( person ); person.Name = "Mauro"; list.Add( person ); person.Name = "Mauro Servienti"; op.Complete(); } var actual = target.GetEntities( EntityTrackingStates.IsTransient, false ); actual.Contains( person ).Should().Be.True(); }
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 after_suspend_cannot_call_RegisterTransient() { ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc, false ); svc.Suspend(); svc.RegisterTransient( p ); }
public void explicit_registerAsTransient_without_autoRemove_throws_exception_if_already_registered() { ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); svc.RegisterTransient( p, false ); }
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 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 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_on_registerTransient_with_explicit_autoRemove_true_raise_trackingServiceStateChanged_event() { Int32 expected = 1; Int32 actual = 0; ChangeTrackingService svc = new ChangeTrackingService(); svc.TrackingServiceStateChanged += ( sender, args ) => { actual++; }; Person p = new Person( svc, false ); svc.RegisterTransient( p, true ); Assert.AreEqual<Int32>( expected, actual ); }
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 service_double_registerTransient_with_same_reference_and_explicit_autoRemove_false_invalidOperationException() { ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); svc.RegisterTransient( p, false ); }
public void service_double_registerTransient_with_same_reference_invalidOperationException() { ChangeTrackingService svc = new ChangeTrackingService(); Person p = new Person( svc ); svc.RegisterTransient( p ); }
public void service_registerTransient_null_reference_explicit_autoRemove_false_argumentNullException() { ChangeTrackingService svc = new ChangeTrackingService(); svc.RegisterTransient( null, false ); }
public void service_registerTransient_null_reference_argumentNullException() { ChangeTrackingService svc = new ChangeTrackingService(); svc.RegisterTransient( null ); }