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