public void Serializable() { var decorator = new ReadOnlyCollectionDataDecorator(new DomainObjectCollectionData(new[] { _order1, _order3, _order4 })); var result = Serializer.SerializeAndDeserialize(decorator); Assert.That(result.Count, Is.EqualTo(3)); }
public override void SetUp() { base.SetUp(); _owningOrder = DomainObjectIDs.Order1.GetObject <Order> (); _endPointID = RelationEndPointID.Resolve(_owningOrder, o => o.OrderItems); _collectionEndPointMock = MockRepository.GenerateStrictMock <ICollectionEndPoint>(); StubCollectionEndPoint(_collectionEndPointMock, TestableClientTransaction, _owningOrder); _virtualEndPointProviderStub = MockRepository.GenerateStub <IVirtualEndPointProvider> (); _virtualEndPointProviderStub .Stub(stub => stub.GetOrCreateVirtualEndPoint(_endPointID)) .Return(_collectionEndPointMock); _endPointDataStub = MockRepository.GenerateStub <IDomainObjectCollectionData>(); _endPointDataDecorator = new ReadOnlyCollectionDataDecorator(_endPointDataStub); _commandStub = MockRepository.GenerateStub <IDataManagementCommand>(); _nestedCommandMock = MockRepository.GenerateMock <IDataManagementCommand> (); _nestedCommandMock.Stub(stub => stub.GetAllExceptions()).Return(new Exception[0]); _expandedCommandFake = new ExpandedCommand(_nestedCommandMock); _delegatingData = new EndPointDelegatingCollectionData(_endPointID, _virtualEndPointProviderStub); _orderItem1 = DomainObjectIDs.OrderItem1.GetObject <OrderItem>(); _orderItem2 = DomainObjectIDs.OrderItem2.GetObject <OrderItem>(); ClientTransactionScope.EnterNullScope(); // no active transaction }
/// <summary> /// Creates a stand-alone read-only collection of the given <paramref name="collectionType"/> via reflection. Read-onlyness is enforced by a /// <see cref="ReadOnlyCollectionDataDecorator"/>. The collection is initialized to have the given initial <paramref name="content"/>. /// The collection must provide a constructor that takes a single parameter of type <see cref="IDomainObjectCollectionData"/>. /// </summary> /// <param name="collectionType">The type of the collection to create.</param> /// <param name="content">The initial content of the collection. This must not contain duplicates or <see langword="null" /> values.</param> /// <returns>A stand-alone read-only instance of <paramref name="collectionType"/>.</returns> /// <remarks> /// The <see cref="DomainObjectCollection"/> returned is read-only, its content cannot be changed. /// </remarks> public DomainObjectCollection CreateReadOnlyCollection(Type collectionType, IEnumerable <DomainObject> content) { ArgumentUtility.CheckNotNull("collectionType", collectionType); ArgumentUtility.CheckNotNull("content", content); var dataStrategy = new ReadOnlyCollectionDataDecorator(new DomainObjectCollectionData(content)); return(CreateCollection(collectionType, dataStrategy)); }
public void GetCollectionData() { var collectionDataStub = new ReadOnlyCollectionDataDecorator(MockRepository.GenerateStub <IDomainObjectCollectionData> ()); _dataManagerMock.Stub(stub => stub.OriginalCollectionData).Return(collectionDataStub); var result = _loadState.GetOriginalData(_collectionEndPointMock); Assert.That(result, Is.SameAs(collectionDataStub)); }
public void DelegatedMembers() { var endPointID = RelationEndPointID.Create(DomainObjectIDs.Order1, typeof(Order), "OrderItems"); var endPoint = MockRepository.GenerateStub <IRealObjectEndPoint>(); var readOnlyCollectionDataDecorator = new ReadOnlyCollectionDataDecorator(new DomainObjectCollectionData()); var domainObjectCollection = new DomainObjectCollection(); var eventRaiser = MockRepository.GenerateStub <IDomainObjectCollectionEventRaiser>(); var orderItem = DomainObjectMother.CreateFakeObject <OrderItem> (); _listenerMock.Replay(); _decoratorTestHelper.CheckDelegation(ep => ep.IsNull, false); _decoratorTestHelper.CheckDelegation(ep => ep.IsNull, true); _decoratorTestHelper.CheckDelegation(ep => ep.ClientTransaction, ClientTransaction.CreateRootTransaction()); _decoratorTestHelper.CheckDelegation(ep => ep.ObjectID, DomainObjectIDs.Order1); _decoratorTestHelper.CheckDelegation(ep => ep.Definition, GetEndPointDefinition(typeof(Order), "OrderItems")); _decoratorTestHelper.CheckDelegation(ep => ep.RelationDefinition, GetRelationDefinition(typeof(Order), "OrderItems")); _decoratorTestHelper.CheckDelegation(ep => ep.HasChanged, false); _decoratorTestHelper.CheckDelegation(ep => ep.HasChanged, true); _decoratorTestHelper.CheckDelegation(ep => ep.HasBeenTouched, false); _decoratorTestHelper.CheckDelegation(ep => ep.HasBeenTouched, true); _decoratorTestHelper.CheckDelegation(ep => ep.GetDomainObject(), orderItem); _decoratorTestHelper.CheckDelegation(ep => ep.GetDomainObjectReference(), orderItem); _decoratorTestHelper.CheckDelegation(ep => ep.IsDataComplete, false); _decoratorTestHelper.CheckDelegation(ep => ep.IsDataComplete, true); _decoratorTestHelper.CheckDelegation(ep => ep.EnsureDataComplete()); _decoratorTestHelper.CheckDelegation(ep => ep.IsSynchronized, false); _decoratorTestHelper.CheckDelegation(ep => ep.IsSynchronized, true); _decoratorTestHelper.CheckDelegation(ep => ep.IsSynchronized, null); _decoratorTestHelper.CheckDelegation(ep => ep.Touch()); _decoratorTestHelper.CheckDelegation(ep => ep.ValidateMandatory()); _decoratorTestHelper.CheckDelegation(ep => ep.GetOppositeRelationEndPointIDs(), new[] { endPointID }); _decoratorTestHelper.CheckDelegation(ep => ep.CanBeCollected, false); _decoratorTestHelper.CheckDelegation(ep => ep.CanBeCollected, true); _decoratorTestHelper.CheckDelegation(ep => ep.CanBeMarkedIncomplete, false); _decoratorTestHelper.CheckDelegation(ep => ep.CanBeMarkedIncomplete, true); _decoratorTestHelper.CheckDelegation(ep => ep.MarkDataIncomplete()); _decoratorTestHelper.CheckDelegation(ep => ep.RegisterOriginalOppositeEndPoint(endPoint)); _decoratorTestHelper.CheckDelegation(ep => ep.UnregisterOriginalOppositeEndPoint(endPoint)); _decoratorTestHelper.CheckDelegation(ep => ep.RegisterCurrentOppositeEndPoint(endPoint)); _decoratorTestHelper.CheckDelegation(ep => ep.UnregisterCurrentOppositeEndPoint(endPoint)); _decoratorTestHelper.CheckDelegation(ep => ep.GetData(), readOnlyCollectionDataDecorator); _decoratorTestHelper.CheckDelegation(ep => ep.GetOriginalData(), readOnlyCollectionDataDecorator); _decoratorTestHelper.CheckDelegation(ep => ep.Collection, domainObjectCollection); _decoratorTestHelper.CheckDelegation(ep => ep.OriginalCollection, domainObjectCollection); _decoratorTestHelper.CheckDelegation(ep => ep.GetCollectionEventRaiser(), eventRaiser); _decoratorTestHelper.CheckDelegation(ep => ep.GetCollectionWithOriginalData(), domainObjectCollection); _decoratorTestHelper.CheckDelegation(ep => ep.MarkDataComplete(new[] { orderItem })); _innerEndPointMock.BackToRecord(); _decoratorTestHelper.CheckDelegation(ep => ep.HasChangedFast, true); _decoratorTestHelper.CheckDelegation(ep => ep.HasChangedFast, false); _decoratorTestHelper.CheckDelegation(ep => ep.HasChangedFast, null); }
public override void SetUp() { base.SetUp(); _wrappedDataStub = MockRepository.GenerateStub <IDomainObjectCollectionData>(); _readOnlyDecorator = new ReadOnlyCollectionDataDecorator(_wrappedDataStub); _order1 = DomainObjectIDs.Order1.GetObject <Order> (); _order3 = DomainObjectIDs.Order3.GetObject <Order> (); _order4 = DomainObjectIDs.Order4.GetObject <Order> (); _order5 = DomainObjectIDs.Order5.GetObject <Order> (); }
public void GetOriginalData() { var fakeResult = new ReadOnlyCollectionDataDecorator(new DomainObjectCollectionData()); _loadStateMock.Expect(mock => mock.GetOriginalData(_endPoint)).Return(fakeResult); _loadStateMock.Replay(); var result = _endPoint.GetOriginalData(); _loadStateMock.VerifyAllExpectations(); Assert.That(result, Is.SameAs(fakeResult)); }
public static void MakeCollectionReadOnly(DomainObjectCollection collection) { // strip off all decorators var checkingDecorator = GetDataStrategyAndCheckType <ModificationCheckingCollectionDataDecorator> (collection); var originalStrategy = GetWrappedData(checkingDecorator); if (originalStrategy is EventRaisingCollectionDataDecorator) { originalStrategy = GetWrappedData((EventRaisingCollectionDataDecorator)originalStrategy); } var newStrategy = new ReadOnlyCollectionDataDecorator(originalStrategy); SetDataStrategy(collection, newStrategy); }
public void GetCollectionWithOriginalData() { var collectionDataStub = MockRepository.GenerateStub <IDomainObjectCollectionData> (); collectionDataStub.Stub(stub => stub.RequiredItemType).Return(typeof(Order)); var readOnlyCollectionDataDecorator = new ReadOnlyCollectionDataDecorator(collectionDataStub); _loadStateMock.Stub(stub => stub.GetOriginalData(_endPoint)).Return(readOnlyCollectionDataDecorator); _loadStateMock.Replay(); var result = _endPoint.GetCollectionWithOriginalData(); Assert.That(result, Is.TypeOf(typeof(OrderCollection))); var actualCollectionData = DomainObjectCollectionDataTestHelper.GetDataStrategy(result); Assert.That(actualCollectionData, Is.SameAs(readOnlyCollectionDataDecorator)); }
private OrderCollection CreateAssociatedCollectionWithEndPointStub() { var collectionEndPointStub = MockRepository.GenerateStub <ICollectionEndPoint> (); var endPointDataStub = new ReadOnlyCollectionDataDecorator(new DomainObjectCollectionData()); collectionEndPointStub.Stub(stub => stub.GetData()).Return(endPointDataStub); var virtualEndPointProviderStub = MockRepository.GenerateStub <IVirtualEndPointProvider>(); var endPointID = RelationEndPointID.Create(DomainObjectIDs.Customer1, typeof(Customer), "Orders"); virtualEndPointProviderStub.Stub(stub => stub.GetOrCreateVirtualEndPoint(endPointID)).Return(collectionEndPointStub); var delegatingStrategy = new EndPointDelegatingCollectionData(endPointID, virtualEndPointProviderStub); var associatedCollection = new OrderCollection(new ModificationCheckingCollectionDataDecorator(typeof(Order), delegatingStrategy)); Assert.That(DomainObjectCollectionDataTestHelper.GetAssociatedEndPoint(associatedCollection), Is.SameAs(collectionEndPointStub)); return(associatedCollection); }