public void get_filters_should_aggregate_filters()
        {
            // arrange
            var filter1     = new Mock <IFilter>().Object;
            var filter2     = new Mock <IFilter>().Object;
            var descriptor1 = new Mock <HttpControllerDescriptor>()
            {
                CallBase = true
            };
            var descriptor2 = new Mock <HttpControllerDescriptor>()
            {
                CallBase = true
            };

            descriptor1.Setup(d => d.GetFilters()).Returns(() => new Collection <IFilter>()
            {
                filter1
            });
            descriptor2.Setup(d => d.GetFilters()).Returns(() => new Collection <IFilter>()
            {
                filter2
            });

            var group = new HttpControllerDescriptorGroup(descriptor1.Object, descriptor2.Object);

            // act
            var filters = group.GetFilters();

            // assert
            filters.Should().BeEquivalentTo(new[] { filter1, filter2 });
        }
        public void get_filters_should_aggregate_filters()
        {
            // arrange
            var filter1     = new Mock <IFilter>().Object;
            var filter2     = new Mock <IFilter>().Object;
            var descriptor1 = new Mock <HttpControllerDescriptor>()
            {
                CallBase = true
            };
            var descriptor2 = new Mock <HttpControllerDescriptor>()
            {
                CallBase = true
            };
            var configuration = new HttpConfiguration();

            descriptor1.Setup(d => d.GetFilters()).Returns(() => new Collection <IFilter>()
            {
                filter1
            });
            descriptor1.Setup(d => d.GetCustomAttributes <IApiVersionProvider>(It.IsAny <bool>()))
            .Returns(() => new Collection <IApiVersionProvider>());
            descriptor1.Setup(d => d.GetCustomAttributes <IApiVersionNeutral>(It.IsAny <bool>()))
            .Returns(() => new Collection <IApiVersionNeutral>());
            descriptor1.Object.Configuration = configuration;
            descriptor1.Object.Properties[typeof(ApiVersionModel)] = ApiVersionModel.Neutral;

            descriptor2.Setup(d => d.GetFilters()).Returns(() => new Collection <IFilter>()
            {
                filter2
            });
            descriptor2.Setup(d => d.GetCustomAttributes <IApiVersionProvider>(It.IsAny <bool>()))
            .Returns(() => new Collection <IApiVersionProvider>());
            descriptor2.Setup(d => d.GetCustomAttributes <IApiVersionNeutral>(It.IsAny <bool>()))
            .Returns(() => new Collection <IApiVersionNeutral>());
            descriptor2.Object.Configuration = configuration;
            descriptor2.Object.Properties[typeof(ApiVersionModel)] = ApiVersionModel.Neutral;

            var group = new HttpControllerDescriptorGroup(descriptor1.Object, descriptor2.Object);

            // act
            var filters = group.GetFilters();

            // assert
            filters.Should().BeEquivalentTo(new[] { filter1, filter2 });
        }