예제 #1
0
        public void Commit_DeletedStateCombination()
        {
            SecurableClassDefinition orderClass = _testHelper.CreateOrderClassDefinition();

            using (_testHelper.Transaction.CreateSubTransaction().EnterDiscardingScope())
            {
                orderClass.EnsureDataAvailable();
                Assert.That(orderClass.State, Is.EqualTo(StateType.Unchanged));

                using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
                {
                    StateCombination combination = _testHelper.CreateStateCombination(orderClass, ClientTransaction.Current);
                    combination.AccessControlList.AccessControlEntries.Add(AccessControlEntry.NewObject());

                    using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
                    {
                        orderClass.EnsureDataAvailable();
                        Assert.That(orderClass.State, Is.EqualTo(StateType.Unchanged));

                        combination.AccessControlList.Delete();
                        Assert.That(combination.Class, Is.Null);

                        Assert.That(orderClass.State, Is.EqualTo(StateType.Changed));
                        ClientTransaction.Current.Commit();
                    }

                    ClientTransaction.Current.Commit();
                }

                Assert.That(orderClass.State, Is.EqualTo(StateType.Changed));
            }
        }
예제 #2
0
        public void CreateStatelessAccessControlList_Twice()
        {
            using (ClientTransaction.CreateRootTransaction().EnterNonDiscardingScope())
            {
                SecurableClassDefinition classDefinition = SecurableClassDefinition.NewObject();
                using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
                {
                    classDefinition.EnsureDataAvailable();
                    Assert.That(classDefinition.State, Is.EqualTo(StateType.Unchanged));

                    classDefinition.CreateStatelessAccessControlList();
                    classDefinition.CreateStatelessAccessControlList();
                }
            }
        }
예제 #3
0
        public void CreateStatelessAccessControlList()
        {
            using (ClientTransaction.CreateRootTransaction().EnterNonDiscardingScope())
            {
                SecurableClassDefinition classDefinition = SecurableClassDefinition.NewObject();
                using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
                {
                    classDefinition.EnsureDataAvailable();
                    Assert.That(classDefinition.State, Is.EqualTo(StateType.Unchanged));

                    StatelessAccessControlList accessControlList = classDefinition.CreateStatelessAccessControlList();

                    Assert.That(accessControlList.Class, Is.SameAs(classDefinition));
                    Assert.IsNotEmpty(accessControlList.AccessControlEntries);
                    Assert.That(classDefinition.State, Is.EqualTo(StateType.Changed));
                }
            }
        }
예제 #4
0
        public void CreateStatefulAccessControlList_TwoNewAcls()
        {
            using (ClientTransaction.CreateRootTransaction().EnterNonDiscardingScope())
            {
                SecurableClassDefinition classDefinition = SecurableClassDefinition.NewObject();
                using (ClientTransaction.Current.CreateSubTransaction().EnterDiscardingScope())
                {
                    classDefinition.EnsureDataAvailable();
                    Assert.That(classDefinition.State, Is.EqualTo(StateType.Unchanged));

                    StatefulAccessControlList acccessControlList0 = classDefinition.CreateStatefulAccessControlList();
                    StatefulAccessControlList acccessControlListl = classDefinition.CreateStatefulAccessControlList();

                    Assert.That(classDefinition.StatefulAccessControlLists.Count, Is.EqualTo(2));
                    Assert.That(classDefinition.StatefulAccessControlLists[0], Is.SameAs(acccessControlList0));
                    Assert.That(acccessControlList0.Index, Is.EqualTo(0));
                    Assert.That(classDefinition.StatefulAccessControlLists[1], Is.SameAs(acccessControlListl));
                    Assert.That(acccessControlListl.Index, Is.EqualTo(1));
                    Assert.That(classDefinition.State, Is.EqualTo(StateType.Changed));
                }
            }
        }