protected override void Arrange()
            {
                var configValueProvider = new ApiSettings();

                configValueProvider.UseReverseProxyHeaders = true;
                Feature item = new Feature();

                item.IsEnabled = true;
                item.Name      = "openApiMetadata";
                configValueProvider.Features.Add(item);

                _openApiMetadataCacheProvider = Stub <IOpenApiMetadataCacheProvider>();

                A.CallTo(() => _openApiMetadataCacheProvider.GetOpenApiContentByFeedName(A <string> ._))
                .Returns(OpenApiMetadataHelper.GetIdentityContent());

                var fakeopenAPIcontent = A.Fake <List <OpenApiContent> >();

                A.CallTo(() => _openApiMetadataCacheProvider.GetAllSectionDocuments(A <bool> ._)).Returns(fakeopenAPIcontent);

                var sectiondata = _openApiMetadataCacheProvider.GetOpenApiContentByFeedName("openApiMetadata");

                fakeopenAPIcontent.Add(sectiondata);

                _controller = new OpenApiMetadataController(_openApiMetadataCacheProvider, configValueProvider);

                var request = A.Fake <HttpRequest>();

                request.Method = "Post";
                request.Scheme = "http";

                A.CallTo(() => request.Host).Returns(new HostString("localhost", 80));

                request.PathBase    = "/";
                request.RouteValues = new RouteValueDictionary {
                    {
                        "controller", "Token"
                    }
                };

                var httpContext = A.Fake <HttpContext>();

                A.CallTo(() => httpContext.Request).Returns(request);

                var controllerContext = new ControllerContext()
                {
                    HttpContext = httpContext,
                };
                RouteValueDictionary dictionary = new RouteValueDictionary();

                dictionary.Add("controller", "Token");

                controllerContext.RouteData = new RouteData(dictionary);

                _controller.ControllerContext = controllerContext;
            }
示例#2
0
            protected override void Arrange()
            {
                var configValueProvider = new NameValueCollectionConfigValueProvider();

                configValueProvider.Values.Add("UseReverseProxyHeaders", "true");

                _openApiMetadataCacheProvider = Stub <IOpenApiMetadataCacheProvider>();

                _openApiMetadataCacheProvider.Stub(x => x.GetOpenApiContentByFeedName(Arg <string> .Is.Anything))
                .Return(OpenApiMetadataHelper.GetIdentityContent());

                _controller = new OpenApiMetadataController(_openApiMetadataCacheProvider, configValueProvider);
                var config  = new HttpConfiguration();
                var request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/metadata");
                var route   = config.Routes.MapHttpRoute("default", "{controller}");

                config.Routes.MapHttpRoute(
                    "OAuthAuthorize",
                    "oauth/authorize",
                    new
                {
                    controller = "Authorize"
                });

                config.Routes.MapHttpRoute(
                    "OAuthToken",
                    "oauth/token",
                    new
                {
                    controller = "Token"
                });

                var routeData = new HttpRouteData(
                    route,
                    new HttpRouteValueDictionary
                {
                    {
                        "controller", "metadata"
                    }
                });

                _controller.ControllerContext = new HttpControllerContext(config, routeData, request);
                _controller.Request           = request;
                _controller.Url = new UrlHelper(request);
                _controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = config;
                _controller.RequestContext.VirtualPathRoot = "/";

                _controller.Request.Headers.Add(XForwardedProto, "https");
                _controller.Request.Headers.Add(XForwardedHost, "api.com");
                _controller.Request.Headers.Add(XForwardedPort, "443");
            }