public void ExpandToAllRelatedObjects_SetSame_Unidirectional() { var client = DomainObjectIDs.Client2.GetObject <Client> (); var unidirectionalEndPointID = RelationEndPointID.Resolve(client, c => c.ParentClient); var unidirectionalEndPoint = (IObjectEndPoint)TestableClientTransaction.DataManager.GetRelationEndPointWithLazyLoad(unidirectionalEndPointID); Assert.That(unidirectionalEndPoint.Definition.GetOppositeEndPointDefinition().IsAnonymous, Is.True); var setSameModification = new ObjectEndPointSetSameCommand(unidirectionalEndPoint, _transactionEventSinkWithMock); var bidirectionalModification = setSameModification.ExpandToAllRelatedObjects(); Assert.That(bidirectionalModification.GetNestedCommands(), Is.EqualTo(new[] { setSameModification })); }
public void ExpandToAllRelatedObjects_SetSame_Bidirectional() { var oppositeEndPointID = RelationEndPointID.Resolve(_relatedObject, e => e.Computer); var oppositeEndPoint = TestableClientTransaction.DataManager.GetRelationEndPointWithLazyLoad(oppositeEndPointID); var bidirectionalModification = _command.ExpandToAllRelatedObjects(); var steps = bidirectionalModification.GetNestedCommands(); Assert.That(steps.Count, Is.EqualTo(2)); Assert.That(steps[0], Is.SameAs(_command)); Assert.That(steps[1], Is.InstanceOf(typeof(RelationEndPointTouchCommand))); Assert.That(((RelationEndPointTouchCommand)steps[1]).EndPoint, Is.SameAs(oppositeEndPoint)); }