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 GetStateCombinations_TwoCombinations()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition orderClass        = testHelper.CreateOrderClassDefinition();
                StateCombination         stateCombination  = testHelper.CreateStateCombination(orderClass);
                List <StateCombination>  stateCombinations = testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass);

                Assert.That(orderClass.StateCombinations, Is.EqualTo(ArrayUtility.Combine(stateCombination, stateCombinations.ToArray())));
            }
        }
Exemple #3
0
        public void Commit_EmptyStateCombinationInClassWithStateProperties()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition();
                testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass);
                testHelper.CreateStateCombination(orderClass);

                testHelper.Transaction.Commit();
            }
        }
Exemple #4
0
        public void Validate_Valid()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition();
                testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass);

                SecurableClassValidationResult result = orderClass.Validate();

                Assert.That(result.IsValid, Is.True);
            }
        }
Exemple #5
0
        public void GetStatePropertyTest_ValidName()
        {
            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;

                Assert.That(orderClass.GetStateProperty(orderStateProperty.Name), Is.EqualTo(orderStateProperty));
                Assert.That(orderClass.GetStateProperty(paymentProperty.Name), Is.EqualTo(paymentProperty));
            }
        }
Exemple #6
0
        public void ValidateStateCombinationsAgainstStateProperties_EmptyStateCombinationInClassWithStateProperties()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition();
                testHelper.CreateOrderStateAndPaymentStateCombinations(orderClass);
                StateCombination statelessCombination = testHelper.CreateStateCombination(orderClass);

                SecurableClassValidationResult result = new SecurableClassValidationResult();
                orderClass.ValidateStateCombinationsAgainstStateProperties(result);

                Assert.That(result.IsValid, Is.False);
                Assert.That(result.InvalidStateCombinations, Is.EquivalentTo(new[] { statelessCombination }));
            }
        }
Exemple #7
0
        public void Validate_DoubleStateCombination()
        {
            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;
                testHelper.CreateStateCombination(
                    orderClass, orderStateProperty[EnumWrapper.Get(OrderState.Received).Name], paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]);

                SecurableClassValidationResult result = orderClass.Validate();

                Assert.That(result.IsValid, Is.False);
            }
        }