Esempio n. 1
0
        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();
        }
Esempio n. 4
0
        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\"}}");
        }