Beispiel #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));
                }
            }
        }
Beispiel #2
0
        public void ValidateUniqueStateCombinations_NoStateCombinations()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

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

                Assert.That(result.IsValid, Is.True);
            }
        }
Beispiel #3
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);
            }
        }
Beispiel #4
0
        public void IsValid_DuplicateStateCombination()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                SecurableClassValidationResult result = new SecurableClassValidationResult();

                result.AddDuplicateStateCombination(stateCombination);

                Assert.That(result.IsValid, Is.False);
            }
        }
Beispiel #5
0
        public void DuplicateStateCombinations_OneInvalidStateCombination()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                SecurableClassValidationResult result = new SecurableClassValidationResult();

                result.AddDuplicateStateCombination(stateCombination);

                Assert.That(result.DuplicateStateCombinations.Count, Is.EqualTo(1));
                Assert.That(result.DuplicateStateCombinations, Has.Member(stateCombination));
            }
        }
Beispiel #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 }));
            }
        }
Beispiel #7
0
        public void ValidateUniqueStateCombinations_TwoEmptyStateCombinations()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition orderClass            = testHelper.CreateOrderClassDefinition();
                StateCombination         statelessCombination1 = testHelper.CreateStateCombination(orderClass);
                StateCombination         statelessCombination2 = testHelper.CreateStateCombination(orderClass);

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

                Assert.That(result.IsValid, Is.False);
                Assert.That(result.DuplicateStateCombinations, Has.Member(statelessCombination1));
                Assert.That(result.DuplicateStateCombinations, Has.Member(statelessCombination2));
            }
        }
Beispiel #8
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);
            }
        }
Beispiel #9
0
        public void ValidateUniqueStateCombinations_TwoStateCombinations()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition orderClass       = testHelper.CreateOrderClassDefinition();
                StatePropertyDefinition  paymentProperty  = testHelper.CreatePaymentStateProperty(orderClass);
                StateCombination         paidCombination1 = testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]);
                StateCombination         paidCombination2 = testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]);
                testHelper.CreateStateCombination(orderClass, paymentProperty[EnumWrapper.Get(PaymentState.None).Name]);

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

                Assert.That(result.IsValid, Is.False);
                Assert.That(result.DuplicateStateCombinations.Count, Is.EqualTo(2));
                Assert.That(result.DuplicateStateCombinations, Has.Member(paidCombination1));
                Assert.That(result.DuplicateStateCombinations, Has.Member(paidCombination2));
            }
        }
Beispiel #10
0
        public void DuplicateStateCombinations_TwoInvalidStateCombinations()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition orderClass           = testHelper.CreateOrderClassDefinition();
                StatePropertyDefinition  paymentProperty      = testHelper.CreatePaymentStateProperty(orderClass);
                StateCombination         statelessCombination = testHelper.CreateStateCombination(orderClass);
                StateCombination         paidStateCombination = testHelper.CreateStateCombination(
                    orderClass, paymentProperty[EnumWrapper.Get(PaymentState.Paid).Name]);

                SecurableClassValidationResult result = new SecurableClassValidationResult();

                result.AddDuplicateStateCombination(statelessCombination);
                result.AddDuplicateStateCombination(paidStateCombination);

                Assert.That(result.DuplicateStateCombinations.Count, Is.EqualTo(2));
                Assert.That(result.DuplicateStateCombinations, Has.Member(statelessCombination));
                Assert.That(result.DuplicateStateCombinations, Has.Member(paidStateCombination));
            }
        }
Beispiel #11
0
        public void DuplicateStateCombinations_AllValid()
        {
            SecurableClassValidationResult result = new SecurableClassValidationResult();

            Assert.That(result.DuplicateStateCombinations.Count, Is.EqualTo(0));
        }
Beispiel #12
0
        public void IsValid_Valid()
        {
            SecurableClassValidationResult result = new SecurableClassValidationResult();

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