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