public void SalesPersonRoleTest()
        {
            using (var s = Domain.OpenSession())
                using (var t = s.OpenTransaction()) {
                    var role  = new SalesPersonRole(s);
                    var roles = new List <Role> {
                        role
                    };
                    var permissions = new PermissionSet(roles);

                    Assert.AreEqual(role.Permissions.Count, permissions.Count);
                    Assert.IsTrue(permissions.Contains <Permission <Customer> >(p => p.CanRead));
                    Assert.IsTrue(permissions.Contains <Permission <Customer> >(p => p.CanWrite));

                    Assert.IsTrue(permissions.Contains <CustomerPermission>(p => p.CanRead));
                    Assert.IsTrue(permissions.Contains <CustomerPermission>(p => p.CanWrite));

                    Assert.IsFalse(permissions.Contains <VipCustomerPermission>(p => p.CanRead));
                    Assert.IsFalse(permissions.Contains <VipCustomerPermission>(p => p.CanWrite));
                    Assert.IsFalse(permissions.Contains <VipCustomerPermission>(p => p.CanDiscount));
                }
        }
Example #2
0
        protected virtual void PopulateData()
        {
            using (var session = Domain.OpenSession()) {
                using (var t = session.OpenTransaction()) {
                    // Branches
                    var southBranch = new Branch(session)
                    {
                        Name = "South"
                    };
                    var northBranch = new Branch(session)
                    {
                        Name = "North"
                    };

                    // Customers
                    new Customer(session)
                    {
                        IsAutomobileIndustry = true, Branch = southBranch
                    };
                    new VipCustomer(session)
                    {
                        IsAircraftIndustry = true, Reason = "High sales", Branch = southBranch
                    };
                    new VipCustomer(session)
                    {
                        Reason = "Relative", Branch = northBranch
                    };

                    // Roles
                    var salesPersonRole          = new SalesPersonRole(session);
                    var salesManagerRole         = new SalesManagerRole(session);
                    var automobileManagerRole    = new AutomobileManagerRole(session);
                    var aircraftManagerRole      = new AircraftManagerRole(session);
                    var southBranchOfficeManager = new BranchOfficeManagerRole(session, southBranch);
                    var northBranchOfficeManager = new BranchOfficeManagerRole(session, northBranch);

                    // Employees
                    var u1 = new Employee(session);
                    u1.Roles.Add(salesPersonRole);
                    u1.Name = "SalesPerson";

                    var u2 = new Employee(session);
                    u2.Roles.Add(salesManagerRole);
                    u2.Name = "SalesManager";

                    var u3 = new Employee(session);
                    u3.Roles.Add(automobileManagerRole);
                    u3.Name = "AutomobileManager";

                    var u4 = new Employee(session);
                    u4.Roles.Add(aircraftManagerRole);
                    u4.Name = "AircraftManager";

                    var u5 = new Employee(session);
                    u5.Roles.Add(southBranchOfficeManager);
                    u5.Name = "SouthBranchOfficeManager";

                    var u6 = new Employee(session);
                    u6.Roles.Add(northBranchOfficeManager);
                    u6.Name = "NorthBranchOfficeManager";

                    var u7 = new Employee(session);
                    u7.Roles.Add(southBranchOfficeManager);
                    u7.Roles.Add(northBranchOfficeManager);
                    u7.Name = "AllBranchOfficeManager";
                    t.Complete();
                }
            }
        }