示例#1
0
        public void AceHasChanged_RegistersClassForCommit()
        {
            var classDefinition = _testHelper.CreateClassDefinition("SecurableClass");
            var acl             = _testHelper.CreateStatelessAcl(classDefinition);
            var ace             = _testHelper.CreateAceWithOwningUser();

            acl.AccessControlEntries.Add(ace);

            using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
            {
                bool commitOnClassWasCalled = false;
                classDefinition.Committing += (sender, e) =>
                {
                    commitOnClassWasCalled = true;
                    Assert.That(GetDataContainer((DomainObject)sender).HasBeenMarkedChanged, Is.True);
                };
                ace.RegisterForCommit();

                ClientTransaction.Current.Commit();

                Assert.That(commitOnClassWasCalled, Is.True);
            }
        }