Example #1
0
        public void FilterImplementingMultipleType_WhereOneTypeIsOverridden_AppearsOnlyInTheOtherList()
        {
            // Arrange
            object expectedInstance         = new ActionAndExceptionFilter();
            Filter actionAndExceptionFilter = CreateFilter(expectedInstance, FilterScope.Global);
            Filter overrideExceptionFilter  = CreateFilter(
                CreateOverride(typeof(IExceptionFilter)),
                FilterScope.Action
                );
            IEnumerable <Filter> filters = new Filter[]
            {
                actionAndExceptionFilter,
                overrideExceptionFilter
            };
            FilterInfo product = CreateProductUnderTest(filters);

            // Act
            IList <IActionFilter>    actionFilters    = product.ActionFilters;
            IList <IExceptionFilter> exceptionFilters = product.ExceptionFilters;

            // Assert
            Assert.NotNull(actionFilters);
            Assert.Equal(1, actionFilters.Count);
            Assert.Same(expectedInstance, actionFilters[0]);
            Assert.NotNull(exceptionFilters);
            Assert.Equal(0, exceptionFilters.Count);
        }
Example #2
0
        public void FilterImplementingMultipleType_WhereOneTypeIsOverridden_AppearsOnlyInTheOtherList()
        {
            // Arrange
            IFilter    expectedInstance         = new ActionAndExceptionFilter();
            FilterInfo actionAndExceptionFilter = new FilterInfo(
                expectedInstance,
                FilterScope.Global
                );
            FilterInfo overrideExceptionFilter = new FilterInfo(
                CreateOverride(typeof(IExceptionFilter)),
                FilterScope.Action
                );
            IEnumerable <FilterInfo> filters = new FilterInfo[]
            {
                actionAndExceptionFilter,
                overrideExceptionFilter
            };
            FilterGrouping product = CreateProductUnderTest(filters);

            // Act
            IActionFilter[]    actionFilters    = product.ActionFilters;
            IExceptionFilter[] exceptionFilters = product.ExceptionFilters;

            // Assert
            Assert.NotNull(actionFilters);
            IActionFilter actionFilter = Assert.Single(actionFilters);

            Assert.Same(expectedInstance, actionFilter);
            Assert.NotNull(exceptionFilters);
            Assert.Empty(exceptionFilters);
        }
        public void FilterImplementingMultipleType_WhereOneTypeIsOverridden_AppearsOnlyInTheOtherList()
        {
            // Arrange
            object expectedInstance = new ActionAndExceptionFilter();
            Filter actionAndExceptionFilter = CreateFilter(expectedInstance, FilterScope.Global);
            Filter overrideExceptionFilter = CreateFilter(CreateOverride(typeof(IExceptionFilter)),
                FilterScope.Action);
            IEnumerable<Filter> filters = new Filter[] { actionAndExceptionFilter, overrideExceptionFilter };
            FilterInfo product = CreateProductUnderTest(filters);

            // Act
            IList<IActionFilter> actionFilters = product.ActionFilters;
            IList<IExceptionFilter> exceptionFilters = product.ExceptionFilters;

            // Assert
            Assert.NotNull(actionFilters);
            Assert.Equal(1, actionFilters.Count);
            Assert.Same(expectedInstance, actionFilters[0]);
            Assert.NotNull(exceptionFilters);
            Assert.Equal(0, exceptionFilters.Count);
        }