public void GetFilters_RemovesDuplicateUniqueFiltersKeepingMostSpecificScope() { // Arrange HttpActionDescriptor actionDescriptorMock = new Mock <HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; var multiActionFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Action); var multiGlobalFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Global); var uniqueControllerFilter = new FilterInfo(new TestUniqueFilter(), FilterScope.Controller); var uniqueActionFilter = new FilterInfo(new TestUniqueFilter(), FilterScope.Action); Mock <DefaultServices> servicesMock = BuildFilterProvidingServicesMock( _configurationInstance, actionDescriptorMock, multiActionFilter, multiGlobalFilter, uniqueControllerFilter, uniqueActionFilter); _configurationInstance.Services = servicesMock.Object; // Act var result = actionDescriptorMock.GetFilterPipeline().ToArray(); // Assert Assert.Equal(new[] { multiGlobalFilter, multiActionFilter, uniqueActionFilter }, result); }
public void GetFilters_UsesFilterProvidersToGetFilters() { // Arrange Mock <IDependencyResolver> resolverMock = new Mock <IDependencyResolver>(); Mock <IFilterProvider> filterProviderMock = new Mock <IFilterProvider>(); resolverMock.Setup(r => r.GetServices(typeof(IFilterProvider))).Returns(new[] { filterProviderMock.Object }); _configurationInstance.ServiceResolver.SetResolver(resolverMock.Object); HttpActionDescriptor actionDescriptorMock = new Mock <HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; // Act actionDescriptorMock.GetFilterPipeline().ToList(); // Assert filterProviderMock.Verify(fp => fp.GetFilters(_configurationInstance, actionDescriptorMock)); }
public void GetFilters_QueriesFilterProvidersFromServiceResolver() { // Arrange Mock <IDependencyResolver> resolverMock = new Mock <IDependencyResolver>(); Mock <IFilterProvider> filterProviderMock = new Mock <IFilterProvider>(); resolverMock.Setup(r => r.GetServices(typeof(IFilterProvider))).Returns(new object[] { filterProviderMock.Object }).Verifiable(); _configurationInstance.ServiceResolver.SetResolver(resolverMock.Object); HttpActionDescriptor actionDescriptorMock = new Mock <HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; // Act actionDescriptorMock.GetFilterPipeline(); // Assert resolverMock.Verify(); }
public void GetFilters_OrdersFilters() { // Arrange HttpActionDescriptor actionDescriptorMock = new Mock <HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; var globalFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Global); var actionFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Action); var controllerFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Controller); Mock <DefaultServices> servicesMock = BuildFilterProvidingServicesMock(_configurationInstance, actionDescriptorMock, globalFilter, actionFilter, controllerFilter); _configurationInstance.Services = servicesMock.Object; // Act var result = actionDescriptorMock.GetFilterPipeline().ToArray(); // Assert Assert.Equal(new[] { globalFilter, controllerFilter, actionFilter }, result); }
public void GetFilters_QueriesFilterProvidersFromServices() { // Arrange Mock <DefaultServices> servicesMock = new Mock <DefaultServices> { CallBase = true }; Mock <IFilterProvider> filterProviderMock = new Mock <IFilterProvider>(); servicesMock.Setup(r => r.GetServices(typeof(IFilterProvider))).Returns(new object[] { filterProviderMock.Object }).Verifiable(); _configurationInstance.Services = servicesMock.Object; HttpActionDescriptor actionDescriptorMock = new Mock <HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; // Act actionDescriptorMock.GetFilterPipeline(); // Assert servicesMock.Verify(); }
public void GetFilters_RemovesDuplicateUniqueFiltersKeepingMostSpecificScope() { // Arrange HttpActionDescriptor actionDescriptorMock = new Mock<HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; var multiActionFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Action); var multiGlobalFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Global); var uniqueControllerFilter = new FilterInfo(new TestUniqueFilter(), FilterScope.Controller); var uniqueActionFilter = new FilterInfo(new TestUniqueFilter(), FilterScope.Action); Mock<DefaultServices> servicesMock = BuildFilterProvidingServicesMock( _configurationInstance, actionDescriptorMock, multiActionFilter, multiGlobalFilter, uniqueControllerFilter, uniqueActionFilter); _configurationInstance.Services = servicesMock.Object; // Act var result = actionDescriptorMock.GetFilterPipeline().ToArray(); // Assert Assert.Equal(new[] { multiGlobalFilter, multiActionFilter, uniqueActionFilter }, result); }
public void GetFilters_OrdersFilters() { // Arrange HttpActionDescriptor actionDescriptorMock = new Mock<HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; var globalFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Global); var actionFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Action); var controllerFilter = new FilterInfo(new TestMultiFilter(), FilterScope.Controller); Mock<DefaultServices> servicesMock = BuildFilterProvidingServicesMock(_configurationInstance, actionDescriptorMock, globalFilter, actionFilter, controllerFilter); _configurationInstance.Services = servicesMock.Object; // Act var result = actionDescriptorMock.GetFilterPipeline().ToArray(); // Assert Assert.Equal(new[] { globalFilter, controllerFilter, actionFilter }, result); }
public void GetFilters_UsesFilterProvidersToGetFilters() { // Arrange Mock<DefaultServices> servicesMock = new Mock<DefaultServices> { CallBase = true }; Mock<IFilterProvider> filterProviderMock = new Mock<IFilterProvider>(); servicesMock.Setup(r => r.GetServices(typeof(IFilterProvider))).Returns(new[] { filterProviderMock.Object }); _configurationInstance.Services = servicesMock.Object; HttpActionDescriptor actionDescriptorMock = new Mock<HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; // Act actionDescriptorMock.GetFilterPipeline().ToList(); // Assert filterProviderMock.Verify(fp => fp.GetFilters(_configurationInstance, actionDescriptorMock)); }
public void GetFilters_QueriesFilterProvidersFromServices() { // Arrange Mock<DefaultServices> servicesMock = new Mock<DefaultServices> { CallBase = true }; Mock<IFilterProvider> filterProviderMock = new Mock<IFilterProvider>(); servicesMock.Setup(r => r.GetServices(typeof(IFilterProvider))).Returns(new object[] { filterProviderMock.Object }).Verifiable(); _configurationInstance.Services = servicesMock.Object; HttpActionDescriptor actionDescriptorMock = new Mock<HttpActionDescriptor>() { CallBase = true }.Object; actionDescriptorMock.Configuration = _configurationInstance; // Act actionDescriptorMock.GetFilterPipeline(); // Assert servicesMock.Verify(); }