コード例 #1
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;
            }
        }
コード例 #2
0
        // Called before each test gets executed.
        public override void SetUp()
        {
            base.SetUp();
            TestHelper = new AccessControlTestHelper();

            // base class TearDown()-method (by MK) calls ClientTransactionScope.ResetActiveScope(),
            // discarding the transaction opened by EnterNonDiscardingScope below.
            TestHelper.Transaction.EnterNonDiscardingScope();


            ReadAccessType   = TestHelper.CreateReadAccessType();   // read access
            WriteAccessType  = TestHelper.CreateWriteAccessType();  // write access
            DeleteAccessType = TestHelper.CreateDeleteAccessType(); // delete permission

            AccessTypeDefinitions  = new[] { ReadAccessType, WriteAccessType, DeleteAccessType };
            AccessTypeDefinitions2 = new[] { ReadAccessType, DeleteAccessType };


            Tenant   = TestHelper.CreateTenant("Da Tenant");
            Group    = TestHelper.CreateGroup("Da Group", null, Tenant);
            Position = TestHelper.CreatePosition("Supreme Being");
            User     = TestHelper.CreateUser("DaUs", "Da", "Usa", "Dr.", Group, Tenant);
            Role     = TestHelper.CreateRole(User, Group, Position);
            Ace      = TestHelper.CreateAceWithOwningTenant();

            TestHelper.AttachAccessType(Ace, ReadAccessType, null);
            TestHelper.AttachAccessType(Ace, WriteAccessType, true);
            TestHelper.AttachAccessType(Ace, DeleteAccessType, null);


            Group2    = TestHelper.CreateGroup("Anotha Group", null, Tenant);
            Position2 = TestHelper.CreatePosition("Working Drone");
            User2     = TestHelper.CreateUser("mr.smith", "", "Smith", "Mr.", Group2, Tenant);
            Role2     = TestHelper.CreateRole(User2, Group2, Position2);
            Ace2      = TestHelper.CreateAceWithSpecificTenant(Tenant);

            TestHelper.AttachAccessType(Ace2, ReadAccessType, true);
            TestHelper.AttachAccessType(Ace2, WriteAccessType, null);
            TestHelper.AttachAccessType(Ace2, DeleteAccessType, true);


            Group3    = TestHelper.CreateGroup("Da 3rd Group", null, Tenant);
            Position3 = TestHelper.CreatePosition("Combatant");
            User3     = TestHelper.CreateUser("ryan_james", "Ryan", "James", "", Group3, Tenant);
            Role3     = TestHelper.CreateRole(User3, Group3, Position3);
            Ace3      = TestHelper.CreateAceWithPositionAndGroupCondition(Position3, GroupCondition.None);

            TestHelper.AttachAccessType(Ace3, ReadAccessType, true);
            TestHelper.AttachAccessType(Ace3, WriteAccessType, true);
            TestHelper.AttachAccessType(Ace3, DeleteAccessType, null);


            //--------------------------------
            // Create ACLs
            //--------------------------------

            SecurableClassDefinition orderClass = SetUpFixture.OrderClassHandle.GetObject();
            var aclList = orderClass.StatefulAccessControlLists;

            Assert.That(aclList.Count, Is.GreaterThanOrEqualTo(2));

            Acl = aclList[0];
            TestHelper.AttachAces(Acl, Ace, Ace2, Ace3);

            var ace2_1 = TestHelper.CreateAceWithAbstractRole();
            var ace2_2 = TestHelper.CreateAceWithPositionAndGroupCondition(Position2, GroupCondition.OwningGroup);

            Acl2 = aclList[1];
            TestHelper.AttachAces(Acl2, ace2_1, ace2_2, Ace3);

            // Additional roles for users
            TestHelper.CreateRole(User2, Group, Position2);
            TestHelper.CreateRole(User2, Group2, Position);
            TestHelper.CreateRole(User2, Group3, Position2);

            TestHelper.CreateRole(User3, Group, Position);
            TestHelper.CreateRole(User3, Group2, Position2);
            TestHelper.CreateRole(User3, Group3, Position3);
            TestHelper.CreateRole(User3, Group, Position3);
            TestHelper.CreateRole(User3, Group2, Position);
        }