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; } }
// 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); }