public void GetObjects_LoadedObjects_Events() { ClientTransaction subTransaction = TestableClientTransaction.CreateSubTransaction(); using (subTransaction.EnterDiscardingScope()) { var eventReceiver = new ClientTransactionEventReceiver(subTransaction); DomainObjectIDs.Order1.GetObject <Order> (); DomainObjectIDs.Order3.GetObject <Order> (); DomainObjectIDs.OrderItem1.GetObject <OrderItem>(); eventReceiver.Clear(); var listenerMock = MockRepository.GenerateMock <IClientTransactionListener> (); PrivateInvoke.InvokeNonPublicMethod(subTransaction, "AddListener", listenerMock); LifetimeService.GetObjects <DomainObject> (subTransaction, DomainObjectIDs.Order1, DomainObjectIDs.Order3, DomainObjectIDs.OrderItem1); Assert.That(eventReceiver.LoadedDomainObjectLists, Is.Empty); listenerMock.AssertWasNotCalled(mock => mock.ObjectsLoading( Arg <ClientTransaction> .Is.Anything, Arg <ReadOnlyCollection <ObjectID> > .Is.Anything)); listenerMock.AssertWasNotCalled(mock => mock.ObjectsLoaded( Arg <ClientTransaction> .Is.Anything, Arg <ReadOnlyCollection <DomainObject> > .Is.Anything)); } }
public void GetObject_Twice() { DomainObject domainObject1 = LifetimeService.GetObject(TestableClientTransaction, DomainObjectIDs.ClassWithAllDataTypes1, false); Assert.That(_eventReceiver.LoadedDomainObjectLists.Count, Is.EqualTo(1)); var domainObjects = _eventReceiver.LoadedDomainObjectLists[0]; Assert.That(domainObjects.Count, Is.EqualTo(1)); Assert.That(domainObjects[0], Is.SameAs(domainObject1)); _eventReceiver.Clear(); DomainObject domainObject2 = LifetimeService.GetObject(TestableClientTransaction, DomainObjectIDs.ClassWithAllDataTypes1, false); Assert.That(_eventReceiver.LoadedDomainObjectLists.Count, Is.EqualTo(0)); Assert.That(domainObject2, Is.SameAs(domainObject1)); }
public void GetRelatedObjectForAlreadyLoadedObjects() { DomainObject order = TestableClientTransaction.GetObject(DomainObjectIDs.Order1, false); DomainObject orderTicket = TestableClientTransaction.GetObject(DomainObjectIDs.OrderTicket1, false); _eventReceiver.Clear(); Assert.That( TestableClientTransaction.GetRelatedObject( RelationEndPointID.Create(order.ID, "Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.OrderTicket")), Is.SameAs(orderTicket)); Assert.That(_eventReceiver.LoadedDomainObjectLists.Count, Is.EqualTo(0)); Assert.That( TestableClientTransaction.GetRelatedObject( RelationEndPointID.Create(orderTicket.ID, "Remotion.Data.DomainObjects.UnitTests.TestDomain.OrderTicket.Order")), Is.SameAs(order)); Assert.That(_eventReceiver.LoadedDomainObjectLists.Count, Is.EqualTo(0)); }
public void IsNullRelatedObjectNonVirtualEndPoint() { Order newOrder = Order.NewObject(); Assert.That(newOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.Customer"].IsNull, Is.True); newOrder.Customer = Customer.NewObject(); Assert.That(newOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.Customer"].IsNull, Is.False); newOrder.Customer = null; Assert.That(newOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.Customer"].IsNull, Is.True); var eventReceiver = new ClientTransactionEventReceiver(ClientTransactionScope.CurrentTransaction); Order existingOrder = DomainObjectIDs.Order1.GetObject <Order> (); eventReceiver.Clear(); Assert.That(eventReceiver.LoadedDomainObjectLists.Count, Is.EqualTo(0)); Assert.That(existingOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.Customer"].IsNull, Is.False); Assert.AreEqual(0, eventReceiver.LoadedDomainObjectLists.Count, "The IsNull check did not cause the object to be loaded."); }
public void IsNullRelatedObjectVirtualEndPoint() { Order newOrder = Order.NewObject(); Assert.That(newOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.OrderTicket"].IsNull, Is.True); newOrder.OrderTicket = OrderTicket.NewObject(); Assert.That(newOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.OrderTicket"].IsNull, Is.False); newOrder.OrderTicket = null; Assert.That(newOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.OrderTicket"].IsNull, Is.True); var eventReceiver = new ClientTransactionEventReceiver(ClientTransactionScope.CurrentTransaction); Order existingOrder = DomainObjectIDs.Order1.GetObject <Order> (); eventReceiver.Clear(); Assert.That(eventReceiver.LoadedDomainObjectLists.Count, Is.EqualTo(0)); Assert.That(existingOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.OrderTicket"].IsNull, Is.False); Assert.AreEqual(1, eventReceiver.LoadedDomainObjectLists.Count, "For virtual end points, the IsNull unfortunately does cause a load."); Assert.That(existingOrder.Properties["Remotion.Data.DomainObjects.UnitTests.TestDomain.Order.OrderTicket"].GetValue <OrderTicket> () == null, Is.False); Assert.AreEqual(1, eventReceiver.LoadedDomainObjectLists.Count, "An ordinary check does cause the object to be loaded."); }