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; }
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"); }