public void RequestFilters_are_prioritized()
        {
            EndpointHost.ServiceManager = new ServiceManager(typeof(DummyHolder).Assembly);
            EndpointHost.ServiceManager.ServiceController.RequestServiceTypeMap[typeof(DummyHolder)]
                = typeof(AttributeFilteredService);

            var attributes     = FilterAttributeCache.GetRequestFilterAttributes(typeof(DummyHolder));
            var attrPriorities = attributes.ToList().ConvertAll(x => x.Priority);

            Assert.That(attrPriorities, Is.EquivalentTo(new[] { -100, -90, -80, 0 }));

            var execOrder = new IHasRequestFilter[attributes.Length];
            var i         = 0;

            for (; i < attributes.Length && attributes[i].Priority < 0; i++)
            {
                execOrder[i] = attributes[i];
                Console.WriteLine(attributes[i].Priority);
            }

            Console.WriteLine("break;");

            for (; i < attributes.Length; i++)
            {
                execOrder[i] = attributes[i];
                Console.WriteLine(attributes[i].Priority);
            }

            var execOrderPriorities = execOrder.ToList().ConvertAll(x => x.Priority);

            Console.WriteLine(execOrderPriorities.Dump());
            Assert.That(execOrderPriorities, Is.EquivalentTo(new[] { -100, -90, -80, 0 }));
        }
Exemplo n.º 2
0
        public void RequestFilters_are_prioritized()
        {
            appHost.Metadata.Add(typeof(AttributeAttributeFilteredService), typeof(DummyHolder), null);

            var attributes     = FilterAttributeCache.GetRequestFilterAttributes(typeof(DummyHolder));
            var attrPriorities = attributes.ToList().ConvertAll(x => x.Priority);

            Assert.That(attrPriorities, Is.EquivalentTo(new[] { int.MinValue, -100, -90, -80, 0, 0 }));

            var execOrder = new IHasRequestFilter[attributes.Length];
            var i         = 0;

            for (; i < attributes.Length && attributes[i].Priority < 0; i++)
            {
                execOrder[i] = attributes[i];
                Console.WriteLine(attributes[i].Priority);
            }

            Console.WriteLine("break;");

            for (; i < attributes.Length; i++)
            {
                execOrder[i] = attributes[i];
                Console.WriteLine(attributes[i].Priority);
            }

            var execOrderPriorities = execOrder.ToList().ConvertAll(x => x.Priority);

            Assert.That(execOrderPriorities, Is.EquivalentTo(new[] { int.MinValue, -100, -90, -80, 0, 0 }));
        }
Exemplo n.º 3
0
 private static IHasRequestFilter[] ShallowCopy(this IHasRequestFilter[] filters)
 {
     var to = new IHasRequestFilter[filters.Length];
     for (int i = 0; i < filters.Length; i++)
     {
         to[i] = filters[i].Copy();
     }
     return to;
 }
Exemplo n.º 4
0
        private static IHasRequestFilter[] ShallowCopy(this IHasRequestFilter[] filters)
        {
            var to = new IHasRequestFilter[filters.Length];

            for (var i = 0; i < filters.Length; i++)
            {
                to[i] = filters[i].Copy();
            }
            return(to);
        }