public void ValidateUniqueStateCombinations_DoubleStateCombinationAndObjectIsDeleted() { AccessControlTestHelper testHelper = new AccessControlTestHelper(); using (testHelper.Transaction.EnterNonDiscardingScope()) { SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition(); List <StateCombination> stateCombinations = testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass); var states = stateCombinations[0].GetStates(); StatePropertyDefinition orderStateProperty = states[0].StateProperty; StatePropertyDefinition paymentProperty = states[1].StateProperty; using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope()) { testHelper.CreateStateCombination( orderClass, ClientTransaction.Current, orderStateProperty[EnumWrapper.Get(OrderState.Received).Name], paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]); Assert.That(orderClass.StateCombinations, Is.Not.Empty); orderClass.Delete(); SecurableClassValidationResult result = new SecurableClassValidationResult(); orderClass.ValidateUniqueStateCombinations(result); Assert.That(result.IsValid, Is.True); Assert.That(orderClass.State, Is.EqualTo(StateType.Deleted)); } } }
public void RegisterForCommit_AfterDiscard() { using (ClientTransaction.CreateRootTransaction().EnterNonDiscardingScope()) { SecurableClassDefinition classDefinition = SecurableClassDefinition.NewObject(); classDefinition.Delete(); Assert.That(classDefinition.State, Is.EqualTo(StateType.Invalid)); Assert.That(() => classDefinition.RegisterForCommit(), Throws.TypeOf <ObjectInvalidException>()); } }
public void RegisterForCommit_AfterDelete() { using (ClientTransaction.CreateRootTransaction().EnterNonDiscardingScope()) { SecurableClassDefinition classDefinition = SecurableClassDefinition.NewObject(); using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope()) { Assert.That(classDefinition.State, Is.EqualTo(StateType.NotLoadedYet)); classDefinition.Delete(); Assert.That(classDefinition.State, Is.EqualTo(StateType.Deleted)); Assert.That(() => classDefinition.RegisterForCommit(), Throws.Nothing); Assert.That(classDefinition.State, Is.EqualTo(StateType.Deleted)); } } }