public void CreateAccessControlEntry() { SecurableClassDefinition classDefinition = _testHelper.CreateClassDefinition("SecurableClass"); AccessTypeDefinition readAccessType = _testHelper.AttachAccessType(classDefinition, Guid.NewGuid(), "Read", 0); AccessTypeDefinition deleteAccessType = _testHelper.AttachAccessType(classDefinition, Guid.NewGuid(), "Delete", 1); AccessControlList acl = _testHelper.CreateStatefulAcl(classDefinition); using (_testHelper.Transaction.CreateSubTransaction().EnterDiscardingScope()) { acl.EnsureDataAvailable(); Assert.That(acl.State, Is.EqualTo(StateType.Unchanged)); AccessControlEntry entry = acl.CreateAccessControlEntry(); Assert.That(entry.AccessControlList, Is.SameAs(acl)); Assert.That(entry.GetPermissions().Count, Is.EqualTo(2)); Assert.That((entry.GetPermissions()[0]).AccessType, Is.SameAs(readAccessType)); Assert.That((entry.GetPermissions()[0]).AccessControlEntry, Is.SameAs(entry)); Assert.That((entry.GetPermissions()[1]).AccessType, Is.SameAs(deleteAccessType)); Assert.That((entry.GetPermissions()[1]).AccessControlEntry, Is.SameAs(entry)); Assert.That(acl.State, Is.EqualTo(StateType.Changed)); } }