public void DataContainerMapRegistering_MarksNewObjectsInvalid() { var middleTransaction = CreateSubTransactionAndClearListeners(_rootTransaction); var subTransaction = CreateSubTransactionAndClearListeners(middleTransaction); var dataContainer = DataContainer.CreateNew(DomainObjectIDs.Order1); var domainObject = LifetimeService.GetObjectReference(subTransaction, dataContainer.ID); dataContainer.SetDomainObject(domainObject); _listener.DataContainerMapRegistering(subTransaction, dataContainer); Assert.That(_rootTransaction.IsInvalid(DomainObjectIDs.Order1), Is.True); Assert.That(ClientTransactionTestHelper.CallGetInvalidObjectReference(_rootTransaction, DomainObjectIDs.Order1), Is.SameAs(domainObject)); Assert.That(middleTransaction.IsInvalid(DomainObjectIDs.Order1), Is.True); Assert.That(ClientTransactionTestHelper.CallGetInvalidObjectReference(middleTransaction, DomainObjectIDs.Order1), Is.SameAs(domainObject)); Assert.That(subTransaction.IsInvalid(DomainObjectIDs.Order1), Is.False); }
public DomainObject GetDomainObjectReference() { if (ObjectID == null) { return(null); } if (ClientTransaction.IsInvalid(ObjectID)) { return(ClientTransaction.GetInvalidObjectReference(ObjectID)); } return(ClientTransaction.GetObjectReference(ObjectID)); }
private static IDataManagementCommand CreateMarkNotInvalidCommand(ClientTransaction tx, ObjectID objectID) { if (!tx.IsInvalid(objectID)) { var message = string.Format( "Cannot resurrect object '{0}' because it is not invalid within the whole transaction hierarchy. In transaction '{1}', the object has " + "state '{2}'.", objectID, tx, tx.GetObjectReference(objectID).TransactionContext[tx].State); var exception = new InvalidOperationException(message); return(new ExceptionCommand(exception)); } return(new MarkNotInvalidCommand(tx.DataManager, objectID)); }
private StateType CalculateState(ObjectID objectID) { if (_clientTransaction.IsInvalid(objectID)) { return(StateType.Invalid); } var dataContainer = _clientTransaction.DataManager.DataContainers[objectID]; if (dataContainer == null) { return(StateType.NotLoadedYet); } if (dataContainer.State == StateType.Unchanged) { return(HasRelationChanged(dataContainer) ? StateType.Changed : StateType.Unchanged); } return(dataContainer.State); }
private void CheckStateIsInvalid(DomainObject domainObject, ClientTransaction clientTransaction) { Assert.That(clientTransaction.IsInvalid(domainObject.ID), Is.True); Assert.That(domainObject.TransactionContext[clientTransaction].IsInvalid, Is.True); Assert.That(domainObject.TransactionContext[clientTransaction].State, Is.EqualTo(StateType.Invalid)); }
private void CheckStateIsNotInvalid(DomainObject domainObject, ClientTransaction clientTransaction, StateType expectedState) { Assert.That(clientTransaction.IsInvalid(domainObject.ID), Is.False); Assert.That(domainObject.TransactionContext[clientTransaction].IsInvalid, Is.False); Assert.That(domainObject.TransactionContext[clientTransaction].State, Is.EqualTo(expectedState)); }