Ejemplo n.º 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));
                }
            }
        }
Ejemplo n.º 2
0
        public void AccessTypes_Empty()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                Assert.That(orderClass.AccessTypes, Is.Empty);
            }
        }
Ejemplo n.º 3
0
        public void GetStatePropertyTest_InvalidName()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                Assert.That(orderClass.GetStateProperty("Invalid"), Is.Null);
            }
        }
Ejemplo n.º 4
0
        public void AccessTypes_IsReadOnly()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                Assert.That(((ICollection <AccessTypeDefinition>)orderClass.AccessTypes).IsReadOnly, Is.True);
            }
        }
Ejemplo n.º 5
0
        public void AccessTypes_OneAccessType()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                Assert.That(orderClass.AccessTypes.Count, Is.EqualTo(1));
            }
        }
Ejemplo n.º 6
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())));
            }
        }
Ejemplo n.º 7
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();
            }
        }
Ejemplo n.º 8
0
        public void SetUp()
        {
            try
            {
                // Use default localization for tests
                AclToolsExpansion.Culture = new CultureInfo("");

                AccessControlTestHelper testHelper = new AccessControlTestHelper();
                using (testHelper.Transaction.EnterDiscardingScope())
                {
                    _dbFixtures = new DatabaseFixtures();
                    _dbFixtures.CreateAndCommitOrganizationalStructureWithTwoTenants(ClientTransaction.Current);

                    _cultureDe = Culture.NewObject("de-DE");
                    _cultureEn = Culture.NewObject("en-US");

                    SecurableClassDefinition orderClass = testHelper.CreateOrderClassDefinition();
                    OrderClassHandle = orderClass.GetHandle();

                    testHelper.AttachAccessType(orderClass, Guid.NewGuid(), "FirstAccessType", 0);
                    testHelper.AttachAccessType(orderClass, Guid.NewGuid(), "FirstAccessType2", 2);
                    testHelper.AttachAccessType(orderClass, Guid.NewGuid(), "FirstAccessType3", 3);
                    aclList = testHelper.CreateAclsForOrderAndPaymentAndDeliveryStates(orderClass);
                    var ace = aclList[0].CreateAccessControlEntry();
                    ace.GetPermissions()[0].Allowed = true; // FirstAccessType

                    testHelper.CreateInvoiceClassDefinition();

                    LocalizeClassEnDe(orderClass, "Order", "Bestellung");

                    LocalizeStatePropertyEnDe(orderClass, "Payment", "Payment", "Bezahlstatus");
                    LocalizeStateEnDe(orderClass, "Payment", (int)PaymentState.None, "None", "Offen");
                    LocalizeStateEnDe(orderClass, "Payment", (int)PaymentState.Paid, "Paid", "Bezahlt");

                    LocalizeStatePropertyEnDe(orderClass, "State", "Order State", "Bestellstatus");
                    LocalizeStateEnDe(orderClass, "State", (int)OrderState.Delivered, "Delivered", "Ausgelifert");
                    LocalizeStateEnDe(orderClass, "State", (int)OrderState.Received, "Received", "Erhalten");

                    LocalizeStatePropertyEnDe(orderClass, "Delivery", "Delivery Provider", "Auslieferer");
                    LocalizeStateEnDe(orderClass, "Delivery", (int)Delivery.Dhl, "DHL", "DHL");
                    LocalizeStateEnDe(orderClass, "Delivery", (int)Delivery.Post, "Mail", "Post");

                    ClientTransaction.Current.Commit();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Ejemplo n.º 9
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);
            }
        }
Ejemplo n.º 10
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);
            }
        }
Ejemplo n.º 11
0
        public void AccessTypes_IsNotCached()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                var firstCollection  = orderClass.AccessTypes;
                var secondCollection = orderClass.AccessTypes;

                Assert.That(secondCollection, Is.Not.SameAs(firstCollection));
            }
        }
Ejemplo n.º 12
0
        public void Commit_TwoStateCombinations()
        {
            AccessControlTestHelper testHelper = new AccessControlTestHelper();

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

                testHelper.Transaction.Commit();
            }
        }
Ejemplo n.º 13
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);
            }
        }
Ejemplo n.º 14
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));
            }
        }
Ejemplo n.º 15
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));
            }
        }
Ejemplo n.º 16
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 }));
            }
        }
Ejemplo n.º 17
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));
            }
        }
Ejemplo n.º 18
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);
            }
        }
Ejemplo n.º 19
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));
            }
        }
Ejemplo n.º 20
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));
            }
        }
Ejemplo n.º 21
0
        public void FindByName_InvalidClassName()
        {
            DatabaseFixtures dbFixtures = new DatabaseFixtures();

            dbFixtures.CreateEmptyDomain();

            AccessControlTestHelper testHelper = new AccessControlTestHelper();

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                testHelper.CreateOrderClassDefinition();
                testHelper.CreateInvoiceClassDefinition();
                testHelper.Transaction.Commit();
            }

            using (ClientTransaction.CreateRootTransaction().EnterNonDiscardingScope())
            {
                SecurableClassDefinition foundClass = SecurableClassDefinition.FindByName("Invce");

                Assert.That(foundClass, Is.Null);
            }
        }
Ejemplo n.º 22
0
        public void FindByName_ValidClassName()
        {
            DatabaseFixtures dbFixtures = new DatabaseFixtures();

            dbFixtures.CreateEmptyDomain();

            AccessControlTestHelper  testHelper = new AccessControlTestHelper();
            SecurableClassDefinition invoiceClass;

            using (testHelper.Transaction.EnterNonDiscardingScope())
            {
                testHelper.CreateOrderClassDefinition();
                invoiceClass = testHelper.CreateInvoiceClassDefinition();
                testHelper.Transaction.Commit();
            }

            using (ClientTransaction.CreateRootTransaction().EnterNonDiscardingScope())
            {
                SecurableClassDefinition foundClass = SecurableClassDefinition.FindByName("Remotion.SecurityManager.UnitTests.TestDomain.Invoice");

                MetadataObjectAssert.AreEqual(invoiceClass, testHelper.Transaction, foundClass);
            }
        }