public void AddRemoveObjectInheritanceTest() { var s = new FakeSubject(); var o1 = new FakeObject { Id = 1 }; var o2 = new FakeObject { Id = 2 }; var roles1 = new Role[] { Role.Manager, Role.Owner }; var roles2 = new Role[] { Role.Editor }; var allRoles = roles1.Concat(roles2).ToList(); _pm.AddRoles(s, o1, roles1); _pm.AddRoles(s, o2, roles2); _ipm.AddObjectInheritance(o1, o2); Assert.IsTrue(_pm.HasRole(s, o1, Role.Manager)); Assert.IsTrue(_pm.HasRole(s, o1, Role.Owner)); Assert.IsTrue(_pm.HasRole(s, o1, Role.Editor)); Assert.IsTrue(_pm.HasAllRoles(s, o1, allRoles)); Assert.IsTrue(_pm.HasAnyRole(s, o1, new Role[] { Role.Manager })); CollectionAssert.AreEquivalent(allRoles, _pm.GetRoles(s, o1).ToList()); _ipm.RemoveObjectInheritance(o1, o2); Assert.IsTrue(_pm.HasRole(s, o1, Role.Manager)); Assert.IsTrue(_pm.HasRole(s, o1, Role.Owner)); Assert.IsFalse(_pm.HasRole(s, o1, Role.Editor)); Assert.IsFalse(_pm.HasAllRoles(s, o1, allRoles)); CollectionAssert.AreEquivalent(roles1, _pm.GetRoles(s, o1).ToList()); }
public void AddRole_HasRole_GetRoles_Test() { var s = new FakeSubject(); var o = new FakeObject(); var res = _pm.AddRole(s, o, Role.Manager); Assert.IsTrue(res); Assert.IsTrue(_pm.HasRole(s, o, Role.Manager)); Assert.IsTrue(_pm.HasAllRoles(s, o, new Role[] { Role.Manager })); Assert.IsTrue(_pm.HasAnyRole(s, o, new Role[] { Role.Manager, Role.Owner })); CollectionAssert.AreEquivalent(new Role[] { Role.Manager }, _pm.GetRoles(s, o).ToList()); }
public void SetRolesTest() { var s = new FakeSubject(); var o = new FakeObject(); var roles = new Role[] { Role.Manager, Role.Owner }; _pm.SetRoles(s, o, roles); Assert.IsTrue(_pm.HasRole(s, o, Role.Manager)); Assert.IsTrue(_pm.HasRole(s, o, Role.Owner)); Assert.IsTrue(_pm.HasAllRoles(s, o, roles)); Assert.IsTrue(_pm.HasAnyRole(s, o, roles)); CollectionAssert.AreEquivalent(roles, _pm.GetRoles(s, o).ToList()); }
public void RemoveAllRolesTest() { var s = new FakeSubject(); var o = new FakeObject(); var roles = new Role[] { Role.Manager, Role.Owner, Role.Viewer }; _pm.SetRoles(s, o, roles); _pm.RemoveAllRoles(s, o); Assert.IsFalse(_pm.HasRole(s, o, Role.Manager)); Assert.IsFalse(_pm.HasRole(s, o, Role.Owner)); Assert.IsFalse(_pm.HasRole(s, o, Role.Viewer)); Assert.IsFalse(_pm.HasAllRoles(s, o, roles)); Assert.IsFalse(_pm.HasAnyRole(s, o, roles)); Assert.AreEqual(0, _pm.GetRoles(s, o).Count); }
public void IsSubjectInheritsTest() { var s1 = new FakeSubject { Id = 1 }; var s2 = new FakeSubject { Id = 2 }; var s3 = new FakeSubject { Id = 3 }; var o = new FakeObject(); _pm.AddRole(s1, o, Role.Editor); _pm.AddRole(s2, o, Role.Manager); _pm.AddRole(s3, o, Role.Owner); _ipm.AddSubjectInheritance(s1, s2); _ipm.AddSubjectInheritance(s2, s3); Assert.IsTrue(_ipm.IsSubjectInherits(s1, s2)); Assert.IsTrue(_ipm.IsSubjectInherits(s2, s3)); Assert.IsTrue(_ipm.IsSubjectInherits(s1, s3)); Assert.IsFalse(_ipm.IsSubjectInherits(s2, s1)); Assert.IsFalse(_ipm.IsSubjectInherits(s3, s1)); Assert.IsFalse(_ipm.IsSubjectInherits(s3, s2)); _ipm.RemoveSubjectInheritance(s2, s3); Assert.IsTrue(_ipm.IsSubjectInherits(s1, s2)); Assert.IsFalse(_ipm.IsSubjectInherits(s2, s3)); Assert.IsFalse(_ipm.IsSubjectInherits(s1, s3)); Assert.IsFalse(_ipm.IsSubjectInherits(s2, s1)); Assert.IsFalse(_ipm.IsSubjectInherits(s3, s1)); Assert.IsFalse(_ipm.IsSubjectInherits(s3, s2)); }
public void IsObjectInheritsTest() { var s = new FakeSubject(); var o1 = new FakeObject { Id = 1 }; var o2 = new FakeObject { Id = 1 }; var o3 = new FakeObject { Id = 1 }; _pm.AddRole(s, o1, Role.Editor); _pm.AddRole(s, o2, Role.Manager); _pm.AddRole(s, o3, Role.Owner); _ipm.AddObjectInheritance(o1, o2); _ipm.AddObjectInheritance(o2, o3); Assert.IsTrue(_ipm.IsObjectInherits(o1, o2)); Assert.IsTrue(_ipm.IsObjectInherits(o2, o3)); Assert.IsTrue(_ipm.IsObjectInherits(o1, o3)); Assert.IsFalse(_ipm.IsObjectInherits(o2, o1)); Assert.IsFalse(_ipm.IsObjectInherits(o3, o1)); Assert.IsFalse(_ipm.IsObjectInherits(o3, o2)); _ipm.RemoveObjectInheritance(o2, o3); Assert.IsTrue(_ipm.IsObjectInherits(o1, o2)); Assert.IsFalse(_ipm.IsObjectInherits(o2, o3)); Assert.IsFalse(_ipm.IsObjectInherits(o1, o3)); Assert.IsFalse(_ipm.IsObjectInherits(o2, o1)); Assert.IsFalse(_ipm.IsObjectInherits(o3, o1)); Assert.IsFalse(_ipm.IsObjectInherits(o3, o2)); }