Пример #1
0
        public void AddPolicyCommandAddsCallHandlersContainer()
        {
            AddPolicyCommand addPolicyCommand = new AddPolicyCommand(ServiceProvider);

            addPolicyCommand.Execute(ApplicationNode);

            PolicyNode policyNode = ApplicationNode.Hierarchy.FindNodeByType(typeof(PolicyNode)) as PolicyNode;
            CallHandlersCollectionNode handlersContainer = ApplicationNode.Hierarchy.FindNodeByType(typeof(CallHandlersCollectionNode)) as CallHandlersCollectionNode;

            Assert.IsNotNull(policyNode);
            Assert.IsNotNull(handlersContainer);
            Assert.AreEqual(policyNode, handlersContainer.Parent);
        }
Пример #2
0
        public void ShouldBeAbleToMoveHandlers()
        {
            ApplicationNode.Hierarchy.Load();
            ApplicationNode.Hierarchy.Open();
            ConfigurationNode policyInjectionNode =
                ApplicationNode.Hierarchy.FindNodeByType(typeof(PolicyInjectionSettingsNode));
            ConfigurationNode policyCollectionNode =
                policyInjectionNode.Hierarchy.FindNodeByType(typeof(PolicyCollectionNode));

            PolicyNode policy1Node = (PolicyNode)policyCollectionNode.Nodes[0];

            CallHandlersCollectionNode handlersNode =
                (CallHandlersCollectionNode)
                policy1Node.Hierarchy.FindNodeByType(typeof(CallHandlersCollectionNode));
            ExceptionCallHandlerNode     exceptionNode = (ExceptionCallHandlerNode)handlersNode.Nodes[3];
            AuthorizationCallHandlerNode authNode      =
                (AuthorizationCallHandlerNode)handlersNode.Nodes[0];

            ConfigurationNode logNode =
                handlersNode.Hierarchy.FindNodeByType(typeof(LogCallHandlerNode));
            ConfigurationNode validationNode =
                handlersNode.Hierarchy.FindNodeByType(typeof(ValidationCallHandlerNode));

            handlersNode.MoveBefore(exceptionNode, authNode);
            handlersNode.MoveAfter(logNode, validationNode);

            IConfigurationSource configSource = ApplicationNode.Hierarchy.BuildConfigurationSource();

            PolicyInjectionSettings settings =
                (PolicyInjectionSettings)
                configSource.GetSection(PolicyInjectionSettings.SectionName);

            PolicyData policy1Data = settings.Policies.Get(0);

            Assert.IsTrue(policy1Data.Handlers.Get(0) is ExceptionCallHandlerData);
            Assert.IsTrue(policy1Data.Handlers.Get(1) is AuthorizationCallHandlerData);
            Assert.IsTrue(policy1Data.Handlers.Get(policy1Data.Handlers.Count - 2) is ValidationCallHandlerData);
            Assert.IsTrue(policy1Data.Handlers.Get(policy1Data.Handlers.Count - 1) is LogCallHandlerData);
        }