private void Do_AddAllowXXXQuery_AllowMultiple(Action <Subject, SecurableEntity> addAccess, ICollection <EntityRef> operations) { EntityType securableEntityType; const int numEntities = 5; Entity[] entities; Subject subject; IDictionary <long, bool> result; using (DatabaseContext.GetContext(true)) { securableEntityType = Entity.Create <EntityType>(); securableEntityType.Inherits.Add(Entity.Get <EntityType>("core:resource")); securableEntityType.Save(); entities = new Entity[numEntities]; for (int i = 0; i < numEntities; i++) { entities[i] = Entity.Create(new EntityRef(securableEntityType.Id)).As <Entity>(); entities[i].Save(); } subject = Entity.Create <UserAccount>().As <Subject>(); subject.Save(); addAccess(subject, securableEntityType.As <SecurableEntity>()); result = new EntityAccessControlChecker().CheckAccess(entities.Select(x => (EntityRef)x).ToList(), operations.ToList(), subject); for (int i = 0; i < numEntities; i++) { Assert.That(result, Has.Exactly(1).Property("Key").EqualTo(entities[i].Id).And.Property("Value").True); } } }