public void Test_AddAllowReadQuery_NameQuery() { using (DatabaseContext.GetContext(true)) { EntityType securableEntityType1; IEntity entity1A; IEntity entity1Z; Subject subject; Report report; IDictionary <long, bool> result; securableEntityType1 = Entity.Create <EntityType>(); securableEntityType1.Inherits.Add(Entity.Get <EntityType>("core:resource")); securableEntityType1.Save(); entity1A = Entity.Create(new EntityRef(securableEntityType1.Id)); entity1A.SetField("core:name", "A"); entity1A.Save(); entity1Z = Entity.Create(new EntityRef(securableEntityType1.Id)); entity1Z.SetField("core:name", "Z"); entity1Z.Save(); subject = Entity.Create <UserAccount>().As <Subject>(); subject.Save(); report = TestQueries.EntitiesWithNameA().ToReport(); new AccessRuleFactory().AddAllowReadQuery(subject, securableEntityType1.As <SecurableEntity>(), report); result = new EntityAccessControlChecker().CheckAccess( new[] { new EntityRef(entity1A.Id), new EntityRef(entity1Z.Id) }, new[] { Permissions.Read }, subject); Assert.That(result, Has.Property("Count").EqualTo(2)); Assert.That(result, Has.Exactly(1).Property("Key").EqualTo(entity1A.Id).And.Property("Value").True); Assert.That(result, Has.Exactly(1).Property("Key").EqualTo(entity1Z.Id).And.Property("Value").False); } }
private IEnumerable <TestCaseData> Test_GetFieldTypesReferencedByCondition_Source() { // Using a Func<StructuredQuery> rather than a straight StructuredQuery to // avoid issues with NUnit and using a CallContext in a TestCaseSource method. yield return(new TestCaseData((Func <StructuredQuery>)(() => TestQueries.Entities()), new string[0])); yield return(new TestCaseData((Func <StructuredQuery>)(() => TestQueries.EntitiesWithNameA()), new[] { "core:name" })); yield return(new TestCaseData((Func <StructuredQuery>)(() => TestQueries.EntitiesWithDescription()), new[] { "core:description" })); yield return(new TestCaseData((Func <StructuredQuery>)(() => TestQueries.EntitiesWithNameDescription("a", "a")), new[] { "core:name", "core:description" })); yield return(new TestCaseData((Func <StructuredQuery>)(() => TestQueries.EntitiesWithNameAndDescriptionInResults("a")), new[] { "core:name" })); yield return(new TestCaseData((Func <StructuredQuery>)(() => TestQueries.AccessRulesWithNamedPermission("read")), new[] { "core:name", "core:accessRuleEnabled" })); yield return(new TestCaseData((Func <StructuredQuery>)(() => TestQueries.ActiveUsersInRole("administrators")), new[] { "core:name", "core:alias" })); }