public async void ShouldTransformToObject() { //Arrange var operationMatcher = ServiceProvider.GetService <IOpenApiOperationMatcher>(); var transformer = ServiceProvider.GetService <IOpenApiSchemaTransformer>(); var pathItemMatcher = ServiceProvider.GetService <IOpenApiPathItemMatcher>(); var document = await OpenAPiDocumentReader.Read(); var httpContext = new FakedHttpContext().ModifyRequest(r => { r.Method = "Get"; r.Path = "/1"; }); //Act var pathItem = pathItemMatcher.MatchByRequestUrl(document, httpContext); var operation = operationMatcher.MatchByRequestAction(pathItem, httpContext); var response = operation.Responses.First().Value.Content.First().Value; var schema = response.Schema.Properties; //Assert var o = transformer.Transform(schema); o.Keys.Count.Should().Be(18); }
public async void WhenApiDidNotHaveResponseTypeShouldOnlyGetStatusCode() { //Arrange var document = await OpenAPiDocumentReader.Read(); var httpContext = new FakedHttpContext().ModifyRequest(r => { r.Method = "Put"; }); //Act var operation = _operationMatcher.MatchByRequestAction(document.Paths["/pet"], httpContext); var schema = _schemaSelector.Select(operation); //Assert schema.Item2.Count.Should().Be(0); schema.Item1.Should().Be(200); }
public async void ShouldGetOpenApiPathItemByUrl() { //Arrange var document = await OpenAPiDocumentReader.Read(); var urlMatcher = ServiceProvider.GetService <IOpenApiPathItemMatcher>(); var httpContext = new FakedHttpContext().ModifyRequest(r => { r.Path = new PathString("/pet"); }); //Act var pathItem = urlMatcher.MatchByRequestUrl(document, httpContext); //Assert pathItem.Should().NotBeNull(); }
public async void ShouldGetOpenApiOperationByRequestAction() { //Arrange var document = await OpenAPiDocumentReader.Read(); var operationMatcher = ServiceProvider.GetService <IOpenApiOperationMatcher>(); var httpContext = new FakedHttpContext().ModifyRequest(r => { r.Method = "Post"; }); //Act var operation = operationMatcher.MatchByRequestAction(document.Paths["/pet"], httpContext); //Assert operation.Should().NotBeNull(); }
public async void ShouldTransformToObject() { //Arrange var document = await OpenAPiDocumentReader.Read(); var httpContext = new FakedHttpContext().ModifyRequest(r => { r.Method = "Post"; }); //Act var operation = _operationMatcher.MatchByRequestAction(document.Paths["/pet"], httpContext); var schema = _schemaSelector.Select(operation); var o = _transformer.Transform(schema.Item2); //Assert var str = await JsonConvert.SerializeObjectAsync(o); str.Should().Be("{\"id\":1234,\"name\":\"add pet\",\"category\":{\"id\":1111,\"name\":\"dog\"}}"); }