Пример #1
0
        public void RequestBodyObjectConverter_ProducesResultWithRawMode_WithNullBodyParam()
        {
            RequestBodyObjectConverter converter = new RequestBodyObjectConverter(_requetBodyBuilderMock.Object, new DefaultValueFactory());
            PostmanRequestBody         result    = converter.Convert(null, new List <IParameter>(), _validSchemaDefinitions);

            Assert.Equal(PostmanRequestBodyMode.raw, result.Mode);
        }
Пример #2
0
        public void RequestBodyObjectConverter_ProducesExpectedResult_WithNullBodyParam()
        {
            RequestBodyObjectConverter converter = new RequestBodyObjectConverter(_requetBodyBuilderMock.Object, new DefaultValueFactory());
            PostmanRequestBody         result    = converter.Convert(null, new List <IParameter>(), _validSchemaDefinitions);

            Assert.NotNull(result);
        }
Пример #3
0
        public void RequestBodyObjectConverter_ProducesResultWithRawMode_WithoutFormDataParameters()
        {
            List <IParameter>          parameters = new List <IParameter>();
            RequestBodyObjectConverter converter  = new RequestBodyObjectConverter(_requetBodyBuilderMock.Object, new DefaultValueFactory());
            PostmanRequestBody         result     = converter.Convert(_validBodyInput, parameters, _validSchemaDefinitions);

            Assert.Equal(PostmanRequestBodyMode.raw, result.Mode);
        }
Пример #4
0
        public void RequestBodyObjectConverter_ProducesResultWithUrlencodedMode_WithOneOrMoreFormDataParameters()
        {
            List <IParameter> parameters = new List <IParameter>()
            {
                new NonBodyParameter {
                    In = SwashbuckleParameterTypeConstants.FormData, Name = "testParam"
                }
            };
            RequestBodyObjectConverter converter = new RequestBodyObjectConverter(_requetBodyBuilderMock.Object, new DefaultValueFactory());
            PostmanRequestBody         result    = converter.Convert(_validBodyInput, parameters, _validSchemaDefinitions);

            Assert.Equal(PostmanRequestBodyMode.urlencoded, result.Mode);
        }
Пример #5
0
        public PostmanCollectionItem Convert(string path, PostmanHttpMethod method, Operation operation, SwaggerDocument swaggerDoc)
        {
            IList <IParameter> parameters = operation.Parameters;

            if (parameters == null)
            {
                parameters = new List <IParameter>();
            }

            PostmanUrl           urlObject  = this.urlConverter.Convert(path, parameters.ToList(), swaggerDoc.Host, swaggerDoc.BasePath);
            List <PostmanHeader> headerList = this.headerConverter.Convert(parameters.OfType <NonBodyParameter>().ToList());

            BodyParameter      bodyParam = parameters.OfType <BodyParameter>().FirstOrDefault(p => p is BodyParameter);
            PostmanRequestBody body      = requestBodyConverter.Convert(bodyParam, parameters.ToList(), swaggerDoc.Definitions);

            var collectionItem = new PostmanCollectionItem()
            {
                Description = new PostmanDescription {
                    Content = operation.Description
                },
                Id      = operation.OperationId,
                Name    = path,
                Request = new PostmanRequest
                {
                    Method      = method,
                    Description = new PostmanDescription {
                        Content = operation.Description ?? ""
                    },
                    Url     = urlObject,
                    Headers = headerList,
                    Body    = body
                }
            };

            return(collectionItem);
        }
        public PostmanRequestBody Convert(BodyParameter bodyParam, List <IParameter> allParams, IDictionary <string, Schema> swaggerDocDefinitions)
        {
            PostmanRequestBody bodyResult = new PostmanRequestBody();

            if (bodyParam != null)
            {
                bodyResult.Mode = PostmanRequestBodyMode.raw;
                if (bodyParam.Schema != null)
                {
                    if (!string.IsNullOrWhiteSpace(bodyParam.Schema.Ref))
                    {
                        string typeName = bodyParam.Schema.Ref.Replace("#/definitions/", "");

                        string json = "";

                        if (swaggerDocDefinitions[typeName] != null)
                        {
                            Schema bodySchema = swaggerDocDefinitions[typeName];

                            JToken bodyJson = this.jsonRequestBodyBuilder.GetJsonResult(bodySchema, swaggerDocDefinitions);
                            json = bodyJson.ToString();
                        }

                        bodyResult.Raw = json;
                    }
                    else
                    {
                        // non complex types to the result directly (primitives and array types)
                        JToken bodyJson = this.jsonRequestBodyBuilder.GetJsonResult(bodyParam.Schema, swaggerDocDefinitions);
                        string json     = bodyJson.ToString();
                        bodyResult.Raw = json;
                    }
                }
            }

            var formdataParams = allParams.OfType <NonBodyParameter>()
                                 .Where(p => p.In == SwashbuckleParameterTypeConstants.FormData);

            if (formdataParams.Count() > 0)
            {
                bodyResult.Mode       = PostmanRequestBodyMode.urlencoded;
                bodyResult.UrlEncoded = new List <PostmanKeyValuePair>();
            }
            else
            {
                bodyResult.Mode = PostmanRequestBodyMode.raw;
            }

            foreach (NonBodyParameter p in formdataParams)
            {
                object defaultValue = this.defaultValueFactory.GetDefaultValueFromFormat(p.Format, p.Type);
                string value        = (defaultValue != null) ? defaultValue.ToString() : "";

                if (p.In == SwashbuckleParameterTypeConstants.FormData)
                {
                    bodyResult.UrlEncoded.Add(new PostmanKeyValuePair
                    {
                        Description = new PostmanDescription {
                            Content = p.Description
                        },
                        Disabled = false,
                        Key      = p.Name,
                        Value    = value
                    });
                }
            }

            return(bodyResult);
        }