public override void SetUp() { base.SetUp(); _transaction = ClientTransactionObjectMother.Create(); _eventSinkWithMock = MockRepository.GenerateStrictMock <IClientTransactionEventSink>(); _invalidDomainObjectManagerMock = MockRepository.GenerateStrictMock <IInvalidDomainObjectManager> (); _dataManagerMock = MockRepository.GenerateStrictMock <IDataManager> (); _enlistedDomainObjectManagerMock = MockRepository.GenerateStrictMock <IEnlistedDomainObjectManager> (); _persistenceStrategyMock = MockRepository.GenerateStrictMock <IPersistenceStrategy>(); _agent = new ObjectLifetimeAgent( _transaction, _eventSinkWithMock, _invalidDomainObjectManagerMock, _dataManagerMock, _enlistedDomainObjectManagerMock, _persistenceStrategyMock); _objectID1 = DomainObjectIDs.Order1; _domainObject1 = DomainObjectMother.CreateFakeObject(_objectID1); _dataContainer1 = DataContainerObjectMother.CreateExisting(_domainObject1); _objectID2 = DomainObjectIDs.Order3; _domainObject2 = DomainObjectMother.CreateFakeObject(_objectID2); _dataContainer2 = DataContainerObjectMother.CreateExisting(_domainObject2); _domainObjectCreatorMock = MockRepository.GenerateStrictMock <IDomainObjectCreator>(); _typeDefinitionWithCreatorMock = ClassDefinitionObjectMother.CreateClassDefinitionWithTable( TestDomainStorageProviderDefinition, classType: typeof(OrderItem), instanceCreator: _domainObjectCreatorMock); _objectIDWithCreatorMock = new ObjectID(_typeDefinitionWithCreatorMock, Guid.NewGuid()); }
public void GetObjectReference_UnknownObject_WithSubTransaction_PutsRootTransactionIntoContext() { var subTransaction = _transaction.CreateSubTransaction(); var agent = new ObjectLifetimeAgent( subTransaction, _eventSinkWithMock, _invalidDomainObjectManagerMock, _dataManagerMock, _enlistedDomainObjectManagerMock, _persistenceStrategyMock); _invalidDomainObjectManagerMock.Stub(stub => stub.IsInvalid(_objectIDWithCreatorMock)).Return(false); _enlistedDomainObjectManagerMock.Stub(stub => stub.GetEnlistedDomainObject(_objectIDWithCreatorMock)).Return(null); _domainObjectCreatorMock .Expect(mock => mock.CreateObjectReference(Arg <ObjectReferenceInitializationContext> .Is.TypeOf, Arg.Is(subTransaction))) .Return(_domainObject1) .WhenCalled( mi => CheckInitializationContext <ObjectReferenceInitializationContext> (mi.Arguments[0], _objectIDWithCreatorMock, _transaction)); var result = agent.GetObjectReference(_objectIDWithCreatorMock); _domainObjectCreatorMock.VerifyAllExpectations(); Assert.That(result, Is.SameAs(_domainObject1)); }
public void Serialization() { var instance = new ObjectLifetimeAgent( _transaction, new SerializableClientTransactionEventSinkFake(), new SerializableInvalidDomainObjectManagerFake(), new SerializableDataManagerFake(), new SerializableEnlistedDomainObjectManagerFake(), new SerializablePersistenceStrategyFake()); var deserializedInstance = Serializer.SerializeAndDeserialize(instance); Assert.That(deserializedInstance.ClientTransaction, Is.Not.Null); Assert.That(deserializedInstance.EventSink, Is.Not.Null); Assert.That(deserializedInstance.InvalidDomainObjectManager, Is.Not.Null); Assert.That(deserializedInstance.DataManager, Is.Not.Null); Assert.That(deserializedInstance.EnlistedDomainObjectManager, Is.Not.Null); Assert.That(deserializedInstance.PersistenceStrategy, Is.Not.Null); }
public void NewObject_WithSubTransaction() { var subTransaction = _transaction.CreateSubTransaction(); var agent = new ObjectLifetimeAgent( subTransaction, _eventSinkWithMock, _invalidDomainObjectManagerMock, _dataManagerMock, _enlistedDomainObjectManagerMock, _persistenceStrategyMock); _eventSinkWithMock.Stub(mock => mock.RaiseNewObjectCreatingEvent(Arg <Type> .Is.Anything)); _persistenceStrategyMock.Stub(mock => mock.CreateNewObjectID(Arg <ClassDefinition> .Is.Anything)).Return(_objectID1); _domainObjectCreatorMock .Expect(mock => mock.CreateNewObject(Arg <IObjectInitializationContext> .Is.Anything, Arg.Is(ParamList.Empty), Arg.Is(subTransaction))) .WhenCalled(mi => CheckInitializationContext <NewObjectInitializationContext> (mi.Arguments[0], _objectID1, _transaction)) .Return(_domainObject1); agent.NewObject(_typeDefinitionWithCreatorMock, ParamList.Empty); _domainObjectCreatorMock.VerifyAllExpectations(); }