public void SelectControllerIgnoresControllersInUnexpectedNamespaces()
        {
            const string expectedNamespace   = "ExpectedNamespace";
            const string unexpectedNamespace = "UnexpectedNamespace";
            const string controllerName      = "Sample";

            var configuration          = new HttpConfiguration();
            var controllerTypeResolver = new Mock <IHttpControllerTypeResolver>();

            configuration.Services.Replace(typeof(IHttpControllerTypeResolver), controllerTypeResolver.Object);

            Type controllerType = GetMockControllerType(controllerName, unexpectedNamespace);

            controllerTypeResolver
            .Setup(c => c.GetControllerTypes(It.IsAny <IAssembliesResolver>()))
            .Returns(new Collection <Type> {
                controllerType
            });

            var            request   = new HttpRequestMessage();
            IHttpRouteData routeData = GetRouteData();

            routeData.Values["controller"] = controllerName;
            routeData.Route.SetNameSpaces(new[] { expectedNamespace });
            request.Properties[HttpPropertyKeys.HttpRouteDataKey] = routeData;

            var selector = new DnnHttpControllerSelector(configuration);

            // Act
            selector.SelectController(request);
        }
        public void SelectControllerIsCaseInsensitive(string controllerTypeName)
        {
            const string expectedNamespace = "ExpectedNamespace";

            var configuration          = new HttpConfiguration();
            var controllerTypeResolver = new Mock <IHttpControllerTypeResolver>();

            configuration.Services.Replace(typeof(IHttpControllerTypeResolver), controllerTypeResolver.Object);

            Type controllerType = GetMockControllerType("Sample", expectedNamespace);

            controllerTypeResolver
            .Setup(c => c.GetControllerTypes(It.IsAny <IAssembliesResolver>()))
            .Returns(new Collection <Type> {
                controllerType
            });

            var            request   = new HttpRequestMessage();
            IHttpRouteData routeData = GetRouteData();

            routeData.Values["controller"] = controllerTypeName;
            routeData.Route.SetNameSpaces(new[] { expectedNamespace });
            request.Properties[HttpPropertyKeys.HttpRouteDataKey] = routeData;

            var selector = new DnnHttpControllerSelector(configuration);

            // Act
            HttpControllerDescriptor descriptor = selector.SelectController(request);

            // Assert
            Assert.AreEqual(controllerType, descriptor.ControllerType);
        }