public async Task Should_return_valid_http_response_message() { var request = new OpenApiMetadataRequest { OtherName = "identity" }; HttpResponseMessage response = _controller.Get(request); Assert.IsNotNull(response); Assert.AreEqual(response.StatusCode, HttpStatusCode.OK); var content = await response.Content.ReadAsStringAsync(); Assert.IsNotNull(content); Assert.IsTrue(content.Contains("localhost:80")); Assert.IsTrue(content.Contains("http://localhost/oauth/token")); }
private OpenApiMetadataRequest CreateOpenApiMetadataRequest(string path) { // need to build the request model manually as binding does not exist in the middleware pipeline. // this is less effort that rewriting the open api metadata cache. var openApiMetadataRequest = new OpenApiMetadataRequest(); var matcher = new RouteMatcher(); foreach (var routeInformation in _routeInformations) { string routeTemplate = routeInformation.GetRouteInformation() .Template; if (matcher.TryMatch(routeTemplate, path, out RouteValueDictionary values)) { if (values.ContainsKey("document")) { // the route for resources/descriptors is the same format as the schema endpoint. // we need to validate that it is a schema instead. string documentName = values["document"] .ToString(); if (_schemaNameMaps.Value.Any(x => x.UriSegment.EqualsIgnoreCase(documentName))) { openApiMetadataRequest.SchemaName = documentName; } if (documentName.EqualsIgnoreCase("resources") || documentName.EqualsIgnoreCase("descriptors")) { openApiMetadataRequest.ResourceType = documentName; } } if (values.ContainsKey("schoolYearFromRoute")) { string schoolYear = values["schoolYearFromRoute"] .ToString(); if (int.TryParse(schoolYear, out int schoolYearFromRoute)) { openApiMetadataRequest.SchoolYearFromRoute = schoolYearFromRoute; } } if (values.ContainsKey("instanceIdFromRoute")) { var instance = values["instanceIdFromRoute"]; var instanceId = instance as string; if (!string.IsNullOrEmpty(instanceId)) { openApiMetadataRequest.InstanceIdFromRoute = instanceId; } } if (values.ContainsKey("organizationCode")) { openApiMetadataRequest.SchemaName = values["organizationCode"] .ToString(); } if (values.ContainsKey("compositeCategoryName")) { openApiMetadataRequest.CompositeCategoryName = values["compositeCategoryName"] .ToString(); } if (values.ContainsKey("profileName")) { openApiMetadataRequest.ProfileName = values["profileName"] .ToString(); } if (values.ContainsKey("other")) { openApiMetadataRequest.OtherName = values["other"] .ToString(); } } } return(openApiMetadataRequest); }