forked from loafle/openapi-generator-original
[dotnetcore] Implement QueryParameter deepObject style is missing for… (#15945)
* [dotnetcore] Implement QueryParameter deepObject style is missing for async function * Add some csharp-restsharp tests * add and fix tests * restore missing files * remove test with datetime problem --------- Co-authored-by: Oliver Krug <Oliver.Krug@ptvgroup.com>
This commit is contained in:
@@ -19,6 +19,7 @@ using Xunit;
|
||||
|
||||
using Org.OpenAPITools.Client;
|
||||
using Org.OpenAPITools.Api;
|
||||
using Org.OpenAPITools.Model;
|
||||
// uncomment below to import models
|
||||
//using Org.OpenAPITools.Model;
|
||||
|
||||
@@ -96,10 +97,9 @@ namespace Org.OpenAPITools.Test.Api
|
||||
[Fact]
|
||||
public void TestEchoBodyPetTest()
|
||||
{
|
||||
// TODO uncomment below to test the method and replace null with proper value
|
||||
//Pet? pet = null;
|
||||
//var response = instance.TestEchoBodyPet(pet);
|
||||
//Assert.IsType<Pet>(response);
|
||||
Pet? pet = new Pet(123, "cat", new Category() { Id = 12, Name = "Test" }, new List<string>(){"http://google.com"},null, null);
|
||||
var response = instance.TestEchoBodyPet(pet);
|
||||
Assert.IsType<Pet>(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Org.OpenAPITools.Api;
|
||||
using Org.OpenAPITools.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml;
|
||||
using Xunit;
|
||||
|
||||
namespace Org.OpenAPITools.Test
|
||||
{
|
||||
public class CustomTest
|
||||
{
|
||||
private QueryApi api = new QueryApi();
|
||||
private BodyApi bodyApi = new BodyApi();
|
||||
|
||||
[Fact]
|
||||
public void TestEchoBodyPet()
|
||||
{
|
||||
Pet queryObject = new Pet(12345L, "Hello World", new Category(987L, "new category"), new List<string> { "http://a.com", "http://b.com" });
|
||||
Pet p = bodyApi.TestEchoBodyPet(queryObject);
|
||||
Assert.NotNull(p);
|
||||
Assert.Equal("Hello World", p.Name);
|
||||
Assert.Equal(12345L, p.Id);
|
||||
|
||||
// response is empty body
|
||||
Pet p2 = bodyApi.TestEchoBodyPet(null);
|
||||
Assert.Null(p2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test query parameter(s)
|
||||
* <p>
|
||||
* Test query parameter(s)
|
||||
*
|
||||
* @throws ApiException if the Api call fails
|
||||
*/
|
||||
[Fact]
|
||||
public void TestQueryStyleFormExplodeTrueObjectTest()
|
||||
{
|
||||
Pet queryObject = new Pet(12345L, "Hello World", new Category(987L, "new category"), new List<string> { "http://a.com", "http://b.com" });
|
||||
String response = api.TestQueryStyleFormExplodeTrueObject(queryObject);
|
||||
EchoServerResponseParser p = new EchoServerResponseParser(response);
|
||||
Assert.Equal("/query/style_form/explode_true/object?query_object=class%20Pet%20%7b%0a%20%20Id%3a%2012345%0a%20%20Name%3a%20Hello%20World%0a%20%20Category%3a%20class%20Category%20%7b%0a%20%20Id%3a%20987%0a%20%20Name%3a%20new%20category%0a%7d%0a%0a%20%20PhotoUrls%3a%20System.Collections.Generic.List%601%5bSystem.String%5d%0a%20%20Tags%3a%20%0a%20%20Status%3a%20%0a%7d%0a", p.path);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void testQueryStyleDeepObjectExplodeTrueObjectTest()
|
||||
{
|
||||
Pet queryObject = new Pet(12345L, "Hello World", new Category(987L, "new category"), new List<string> { "http://a.com", "http://b.com" });
|
||||
String response = api.TestQueryStyleDeepObjectExplodeTrueObject(queryObject);
|
||||
EchoServerResponseParser p = new EchoServerResponseParser(response);
|
||||
Assert.Equal("/query/style_deepObject/explode_true/object?queryObject%5bid%5d=12345&queryObject%5bname%5d=Hello%20World&queryObject%5bcategory%5d=class%20Category%20%7b%0a%20%20Id%3a%20987%0a%20%20Name%3a%20new%20category%0a%7d%0a&queryObject%5bphotoUrls%5d=http%3a%2f%2fa.com%2chttp%3a%2f%2fb.com", p.path);
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public void testQueryStyleDeepObjectExplodeTrueObjectAsyncTest()
|
||||
{
|
||||
Pet queryObject = new Pet(12345L, "Hello World", new Category(987L, "new category"), new List<string> { "http://a.com", "http://b.com" });
|
||||
Task<String> responseTask = api.TestQueryStyleDeepObjectExplodeTrueObjectAsync(queryObject);
|
||||
EchoServerResponseParser p = new EchoServerResponseParser(responseTask.Result);
|
||||
Assert.Equal("/query/style_deepObject/explode_true/object?queryObject%5bid%5d=12345&queryObject%5bname%5d=Hello%20World&queryObject%5bcategory%5d=class%20Category%20%7b%0a%20%20Id%3a%20987%0a%20%20Name%3a%20new%20category%0a%7d%0a&queryObject%5bphotoUrls%5d=http%3a%2f%2fa.com%2chttp%3a%2f%2fb.com", p.path);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
* Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Net.Mime.MediaTypeNames;
|
||||
|
||||
namespace Org.OpenAPITools.Test
|
||||
{
|
||||
public class EchoServerResponseParser
|
||||
{
|
||||
public String method; // e.g. GET
|
||||
public String path; // e.g. /query/style_form/explode_true/object?id=12345
|
||||
public String protocol; // e.g. HTTP/1.1
|
||||
public Dictionary<String, String> headers = new Dictionary<String, String>();
|
||||
public String body; // e.g. <html><head></head><body>Hello World!</body></html>
|
||||
|
||||
public EchoServerResponseParser(String response)
|
||||
{
|
||||
if (response == null)
|
||||
{
|
||||
throw new SystemException("Echo server response cannot be null");
|
||||
}
|
||||
|
||||
String[] lines = Regex.Split(response, "\r\n|\r|\n");
|
||||
bool firstLine = true;
|
||||
bool bodyStart = false;
|
||||
StringBuilder bodyBuilder = new StringBuilder();
|
||||
|
||||
foreach (String line in lines)
|
||||
{
|
||||
if (firstLine)
|
||||
{
|
||||
String[] items = line.Split(" ");
|
||||
this.method = items[0];
|
||||
this.path = items[1];
|
||||
this.protocol = items[2];
|
||||
firstLine = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (bodyStart)
|
||||
{
|
||||
bodyBuilder.Append(line);
|
||||
bodyBuilder.Append("\n");
|
||||
}
|
||||
|
||||
if (String.IsNullOrEmpty(line))
|
||||
{
|
||||
bodyStart = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
// store the header key-value pair in headers
|
||||
String[] keyValue = line.Split(": ");
|
||||
if (keyValue.Length == 2)
|
||||
{ // skip blank line, non key-value pair
|
||||
this.headers.Add(keyValue[0], keyValue[1]);
|
||||
}
|
||||
}
|
||||
|
||||
body = bodyBuilder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1157,7 +1157,30 @@ namespace Org.OpenAPITools.Api
|
||||
|
||||
if (queryObject != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "query_object", queryObject));
|
||||
if (queryObject.Id != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "queryObject[id]", queryObject.Id));
|
||||
}
|
||||
if (queryObject.Name != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "queryObject[name]", queryObject.Name));
|
||||
}
|
||||
if (queryObject.Category != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "queryObject[category]", queryObject.Category));
|
||||
}
|
||||
if (queryObject.PhotoUrls != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "queryObject[photoUrls]", queryObject.PhotoUrls));
|
||||
}
|
||||
if (queryObject.Tags != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "queryObject[tags]", queryObject.Tags));
|
||||
}
|
||||
if (queryObject.Status != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "queryObject[status]", queryObject.Status));
|
||||
}
|
||||
}
|
||||
|
||||
localVarRequestOptions.Operation = "QueryApi.TestQueryStyleDeepObjectExplodeTrueObject";
|
||||
@@ -1294,7 +1317,6 @@ namespace Org.OpenAPITools.Api
|
||||
|
||||
if (queryObject != null)
|
||||
{
|
||||
localVarRequestOptions.QueryParameters.Add(Org.OpenAPITools.Client.ClientUtils.ParameterToMultiMap("", "query_object", queryObject));
|
||||
}
|
||||
|
||||
localVarRequestOptions.Operation = "QueryApi.TestQueryStyleDeepObjectExplodeTrueObjectAllOf";
|
||||
|
||||
Reference in New Issue
Block a user