예제 #1
0
        public SecurableClassDefinition CreateAndCommitSecurableClassDefinitionWithAccessControlLists(int accessControlLists, ClientTransaction transaction)
        {
            CreateEmptyDomain();

            using (transaction.EnterNonDiscardingScope())
            {
                SecurableClassDefinition   classDefinition            = CreateOrderSecurableClassDefinition();
                StatelessAccessControlList statelessAccessControlList = StatelessAccessControlList.NewObject();
                classDefinition.StatelessAccessControlList = statelessAccessControlList;

                var stateProperty = StatePropertyDefinition.NewObject(Guid.NewGuid(), "Property");
                classDefinition.AddStateProperty(stateProperty);

                for (int i = 1; i < accessControlLists; i++)
                {
                    StatefulAccessControlList statefulAccessControlList = StatefulAccessControlList.NewObject();
                    classDefinition.StatefulAccessControlLists.Add(statefulAccessControlList);
                    statefulAccessControlList.CreateAccessControlEntry();
                    CreateStateCombination(statefulAccessControlList, stateProperty, StateDefinition.NewObject(string.Format("Value {0}", i), i));
                }

                ClientTransactionScope.CurrentTransaction.Commit();

                return(classDefinition);
            }
        }
예제 #2
0
        private StateDefinition CreateState(string name, int value)
        {
            StateDefinition state = StateDefinition.NewObject(name, value);

            state.Index = value;

            return(state);
        }
예제 #3
0
        public StateDefinition CreateState(string name, int value)
        {
            using (_transaction.EnterNonDiscardingScope())
            {
                StateDefinition state = StateDefinition.NewObject(name, value);
                state.Index = value;

                return(state);
            }
        }
예제 #4
0
        public void RemoveStateProperty_DeletesAssociatedAccessControlListIfDeletedStateCombinationWasLastStateCombination()
        {
            var state1        = StateDefinition.NewObject("Test", 1);
            var state2        = StateDefinition.NewObject();
            var stateProperty = StatePropertyDefinition.NewObject();

            stateProperty.AddState(state1);

            var securableClassDefinition = SecurableClassDefinition.NewObject();

            securableClassDefinition.AddStateProperty(stateProperty);
            var acl1 = securableClassDefinition.CreateStatefulAccessControlList();

            acl1.StateCombinations[0].AttachState(state1);

            var acl2 = securableClassDefinition.CreateStatefulAccessControlList();

            Assert.That(acl2.StateCombinations, Is.Not.Empty);

            var acl3 = securableClassDefinition.CreateStatefulAccessControlList();

            acl3.StateCombinations[0].Delete();

            var acl4 = securableClassDefinition.CreateStatefulAccessControlList();

            acl4.StateCombinations[0].AttachState(state2);

            securableClassDefinition.RemoveStateProperty(stateProperty);

            Assert.That(acl1.State, Is.EqualTo(StateType.Invalid));

            Assert.That(acl2.State, Is.EqualTo(StateType.New));
            Assert.That(acl2.StateCombinations.Count, Is.EqualTo(1));
            Assert.That(acl2.StateCombinations[0].GetStates(), Is.Empty);

            Assert.That(acl3.State, Is.EqualTo(StateType.New));
            Assert.That(acl3.StateCombinations, Is.Empty);

            Assert.That(acl4.State, Is.EqualTo(StateType.New));
            Assert.That(acl4.StateCombinations.Count, Is.EqualTo(1));
            Assert.That(acl4.StateCombinations[0].GetStates(), Is.EqualTo(new[] { state2 }));
        }
예제 #5
0
        public void RemoveStateProperty_DeletesAssociatedStateCombinations()
        {
            var state1        = StateDefinition.NewObject("Test", 1);
            var state2        = StateDefinition.NewObject();
            var stateProperty = StatePropertyDefinition.NewObject();

            stateProperty.AddState(state1);

            var securableClassDefinition = SecurableClassDefinition.NewObject();

            securableClassDefinition.AddStateProperty(stateProperty);
            var acl = securableClassDefinition.CreateStatefulAccessControlList();

            acl.StateCombinations[0].AttachState(state1);
            acl.CreateStateCombination().AttachState(state2);

            securableClassDefinition.RemoveStateProperty(stateProperty);

            Assert.That(acl.StateCombinations.Count, Is.EqualTo(1));
            Assert.That(acl.StateCombinations[0].GetStates(), Is.EqualTo(new[] { state2 }));
        }
예제 #6
0
 public void DomainObjectsAreSerializable()
 {
     CheckDomainObjectSerializability(delegate { return(AccessControlEntry.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(StatefulAccessControlList.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(Permission.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(StateCombination.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(StateUsage.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(AbstractRoleDefinition.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(AccessTypeDefinition.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(AccessTypeReference.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(Culture.NewObject("DE-DE")); });
     CheckDomainObjectSerializability(delegate { return(LocalizedName.NewObject("foo", Culture.NewObject("DE-DE"), SecurableClassDefinition.NewObject())); });
     CheckDomainObjectSerializability(delegate { return(SecurableClassDefinition.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(StateDefinition.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(StatePropertyDefinition.NewObject()); });
     CheckDomainObjectSerializability(delegate { return(StatePropertyReference.NewObject()); });
     CheckDomainObjectSerializability(delegate { return((Group)LifetimeService.NewObject(ClientTransaction.Current, typeof(Group), ParamList.Empty)); });
     CheckDomainObjectSerializability(delegate { return((GroupType)LifetimeService.NewObject(ClientTransaction.Current, typeof(GroupType), ParamList.Empty)); });
     CheckDomainObjectSerializability(delegate { return(GroupTypePosition.NewObject()); });
     CheckDomainObjectSerializability(delegate { return((Position)LifetimeService.NewObject(ClientTransaction.Current, typeof(Position), ParamList.Empty)); });
     CheckDomainObjectSerializability(delegate { return(Role.NewObject()); });
     CheckDomainObjectSerializability(delegate { return((Tenant)LifetimeService.NewObject(ClientTransaction.Current, typeof(Tenant), ParamList.Empty)); });
     CheckDomainObjectSerializability(delegate { return((User)LifetimeService.NewObject(ClientTransaction.Current, typeof(User), ParamList.Empty)); });
 }