Exemple #1
0
        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));
                }
            }
        }
Exemple #2
0
        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>());
            }
        }
Exemple #3
0
        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));
                }
            }
        }