forked from loafle/openapi-generator-original
Support models with multi-level hierarchy (via roxspring) (#4503)
* Example of broken multi-level hierarchy * Support for multiple levels of hierarchy in model objects * Support for multiple levels of hierarchy in generators * Regenerated samples * Temporarily skip scalaz sample verification, which is having issue with Java version in CI container * Re-enable scalaz in verify samples Co-authored-by: Rob Oxspring <roxspring@imapmail.org>
This commit is contained in:
committed by
William Cheng
parent
daec02b8c5
commit
376e419d0b
@@ -159,6 +159,8 @@ Class | Method | HTTP request | Description
|
||||
- [Model.ArrayOfArrayOfNumberOnly](docs/ArrayOfArrayOfNumberOnly.md)
|
||||
- [Model.ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
|
||||
- [Model.ArrayTest](docs/ArrayTest.md)
|
||||
- [Model.BigCat](docs/BigCat.md)
|
||||
- [Model.BigCatAllOf](docs/BigCatAllOf.md)
|
||||
- [Model.Capitalization](docs/Capitalization.md)
|
||||
- [Model.Cat](docs/Cat.md)
|
||||
- [Model.CatAllOf](docs/CatAllOf.md)
|
||||
|
||||
14
samples/client/petstore/csharp/OpenAPIClient/docs/BigCat.md
Normal file
14
samples/client/petstore/csharp/OpenAPIClient/docs/BigCat.md
Normal file
@@ -0,0 +1,14 @@
|
||||
|
||||
# Org.OpenAPITools.Model.BigCat
|
||||
|
||||
## Properties
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**Declawed** | **bool** | | [optional]
|
||||
**Kind** | **string** | | [optional]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models)
|
||||
[[Back to API list]](../README.md#documentation-for-api-endpoints)
|
||||
[[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
|
||||
# Org.OpenAPITools.Model.BigCatAllOf
|
||||
|
||||
## Properties
|
||||
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**Kind** | **string** | | [optional]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models)
|
||||
[[Back to API list]](../README.md#documentation-for-api-endpoints)
|
||||
[[Back to README]](../README.md)
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
*
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using Org.OpenAPITools.Api;
|
||||
using Org.OpenAPITools.Model;
|
||||
using Org.OpenAPITools.Client;
|
||||
using System.Reflection;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Org.OpenAPITools.Test
|
||||
{
|
||||
/// <summary>
|
||||
/// Class for testing BigCatAllOf
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
/// Please update the test case below to test the model.
|
||||
/// </remarks>
|
||||
public class BigCatAllOfTests
|
||||
{
|
||||
// TODO uncomment below to declare an instance variable for BigCatAllOf
|
||||
//private BigCatAllOf instance;
|
||||
|
||||
/// <summary>
|
||||
/// Setup before each test
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Init()
|
||||
{
|
||||
// TODO uncomment below to create an instance of BigCatAllOf
|
||||
//instance = new BigCatAllOf();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up after each test
|
||||
/// </summary>
|
||||
[TearDown]
|
||||
public void Cleanup()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test an instance of BigCatAllOf
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void BigCatAllOfInstanceTest()
|
||||
{
|
||||
// TODO uncomment below to test "IsInstanceOf" BigCatAllOf
|
||||
//Assert.IsInstanceOf(typeof(BigCatAllOf), instance);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Test the property 'Kind'
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void KindTest()
|
||||
{
|
||||
// TODO unit test for the property 'Kind'
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
*
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
|
||||
using NUnit.Framework;
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Collections.Generic;
|
||||
using Org.OpenAPITools.Api;
|
||||
using Org.OpenAPITools.Model;
|
||||
using Org.OpenAPITools.Client;
|
||||
using System.Reflection;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Org.OpenAPITools.Test
|
||||
{
|
||||
/// <summary>
|
||||
/// Class for testing BigCat
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
/// Please update the test case below to test the model.
|
||||
/// </remarks>
|
||||
public class BigCatTests
|
||||
{
|
||||
// TODO uncomment below to declare an instance variable for BigCat
|
||||
//private BigCat instance;
|
||||
|
||||
/// <summary>
|
||||
/// Setup before each test
|
||||
/// </summary>
|
||||
[SetUp]
|
||||
public void Init()
|
||||
{
|
||||
// TODO uncomment below to create an instance of BigCat
|
||||
//instance = new BigCat();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clean up after each test
|
||||
/// </summary>
|
||||
[TearDown]
|
||||
public void Cleanup()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test an instance of BigCat
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void BigCatInstanceTest()
|
||||
{
|
||||
// TODO uncomment below to test "IsInstanceOf" BigCat
|
||||
//Assert.IsInstanceOf(typeof(BigCat), instance);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Test the property 'Kind'
|
||||
/// </summary>
|
||||
[Test]
|
||||
public void KindTest()
|
||||
{
|
||||
// TODO unit test for the property 'Kind'
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -32,6 +32,7 @@ namespace Org.OpenAPITools.Model
|
||||
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
|
||||
[JsonSubtypes.KnownSubType(typeof(Dog), "Dog")]
|
||||
[JsonSubtypes.KnownSubType(typeof(Cat), "Cat")]
|
||||
[JsonSubtypes.KnownSubType(typeof(BigCat), "BigCat")]
|
||||
public partial class Animal : IEquatable<Animal>, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
*
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Runtime.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter;
|
||||
|
||||
namespace Org.OpenAPITools.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// BigCat
|
||||
/// </summary>
|
||||
[DataContract]
|
||||
public partial class BigCat : Cat, IEquatable<BigCat>, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines Kind
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum KindEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Enum Lions for value: lions
|
||||
/// </summary>
|
||||
[EnumMember(Value = "lions")]
|
||||
Lions = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Tigers for value: tigers
|
||||
/// </summary>
|
||||
[EnumMember(Value = "tigers")]
|
||||
Tigers = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Leopards for value: leopards
|
||||
/// </summary>
|
||||
[EnumMember(Value = "leopards")]
|
||||
Leopards = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Jaguars for value: jaguars
|
||||
/// </summary>
|
||||
[EnumMember(Value = "jaguars")]
|
||||
Jaguars = 4
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets Kind
|
||||
/// </summary>
|
||||
[DataMember(Name="kind", EmitDefaultValue=false)]
|
||||
public KindEnum? Kind { get; set; }
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BigCat" /> class.
|
||||
/// </summary>
|
||||
[JsonConstructorAttribute]
|
||||
protected BigCat() { }
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BigCat" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kind">kind.</param>
|
||||
public BigCat(KindEnum? kind = default(KindEnum?), string className = default(string), string color = "red", bool declawed = default(bool)) : base(declawed)
|
||||
{
|
||||
this.Kind = kind;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns the string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>String presentation of the object</returns>
|
||||
public override string ToString()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.Append("class BigCat {\n");
|
||||
sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n");
|
||||
sb.Append(" Kind: ").Append(Kind).Append("\n");
|
||||
sb.Append("}\n");
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the JSON string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>JSON string presentation of the object</returns>
|
||||
public override string ToJson()
|
||||
{
|
||||
return JsonConvert.SerializeObject(this, Formatting.Indented);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if objects are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Object to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public override bool Equals(object input)
|
||||
{
|
||||
return this.Equals(input as BigCat);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if BigCat instances are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Instance of BigCat to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public bool Equals(BigCat input)
|
||||
{
|
||||
if (input == null)
|
||||
return false;
|
||||
|
||||
return base.Equals(input) &&
|
||||
(
|
||||
this.Kind == input.Kind ||
|
||||
(this.Kind != null &&
|
||||
this.Kind.Equals(input.Kind))
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the hash code
|
||||
/// </summary>
|
||||
/// <returns>Hash code</returns>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
unchecked // Overflow is fine, just wrap
|
||||
{
|
||||
int hashCode = base.GetHashCode();
|
||||
if (this.Kind != null)
|
||||
hashCode = hashCode * 59 + this.Kind.GetHashCode();
|
||||
return hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To validate all properties of the instance
|
||||
/// </summary>
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
|
||||
{
|
||||
foreach(var x in base.BaseValidate(validationContext)) yield return x;
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,156 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
*
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
*
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
*
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Runtime.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using OpenAPIDateConverter = Org.OpenAPITools.Client.OpenAPIDateConverter;
|
||||
|
||||
namespace Org.OpenAPITools.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// BigCatAllOf
|
||||
/// </summary>
|
||||
[DataContract]
|
||||
public partial class BigCatAllOf : IEquatable<BigCatAllOf>, IValidatableObject
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines Kind
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(StringEnumConverter))]
|
||||
public enum KindEnum
|
||||
{
|
||||
/// <summary>
|
||||
/// Enum Lions for value: lions
|
||||
/// </summary>
|
||||
[EnumMember(Value = "lions")]
|
||||
Lions = 1,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Tigers for value: tigers
|
||||
/// </summary>
|
||||
[EnumMember(Value = "tigers")]
|
||||
Tigers = 2,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Leopards for value: leopards
|
||||
/// </summary>
|
||||
[EnumMember(Value = "leopards")]
|
||||
Leopards = 3,
|
||||
|
||||
/// <summary>
|
||||
/// Enum Jaguars for value: jaguars
|
||||
/// </summary>
|
||||
[EnumMember(Value = "jaguars")]
|
||||
Jaguars = 4
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or Sets Kind
|
||||
/// </summary>
|
||||
[DataMember(Name="kind", EmitDefaultValue=false)]
|
||||
public KindEnum? Kind { get; set; }
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="BigCatAllOf" /> class.
|
||||
/// </summary>
|
||||
/// <param name="kind">kind.</param>
|
||||
public BigCatAllOf(KindEnum? kind = default(KindEnum?))
|
||||
{
|
||||
this.Kind = kind;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns the string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>String presentation of the object</returns>
|
||||
public override string ToString()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.Append("class BigCatAllOf {\n");
|
||||
sb.Append(" Kind: ").Append(Kind).Append("\n");
|
||||
sb.Append("}\n");
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the JSON string presentation of the object
|
||||
/// </summary>
|
||||
/// <returns>JSON string presentation of the object</returns>
|
||||
public virtual string ToJson()
|
||||
{
|
||||
return JsonConvert.SerializeObject(this, Formatting.Indented);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if objects are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Object to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public override bool Equals(object input)
|
||||
{
|
||||
return this.Equals(input as BigCatAllOf);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if BigCatAllOf instances are equal
|
||||
/// </summary>
|
||||
/// <param name="input">Instance of BigCatAllOf to be compared</param>
|
||||
/// <returns>Boolean</returns>
|
||||
public bool Equals(BigCatAllOf input)
|
||||
{
|
||||
if (input == null)
|
||||
return false;
|
||||
|
||||
return
|
||||
(
|
||||
this.Kind == input.Kind ||
|
||||
(this.Kind != null &&
|
||||
this.Kind.Equals(input.Kind))
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the hash code
|
||||
/// </summary>
|
||||
/// <returns>Hash code</returns>
|
||||
public override int GetHashCode()
|
||||
{
|
||||
unchecked // Overflow is fine, just wrap
|
||||
{
|
||||
int hashCode = 41;
|
||||
if (this.Kind != null)
|
||||
hashCode = hashCode * 59 + this.Kind.GetHashCode();
|
||||
return hashCode;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To validate all properties of the instance
|
||||
/// </summary>
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
|
||||
{
|
||||
yield break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -122,6 +122,16 @@ namespace Org.OpenAPITools.Model
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
|
||||
{
|
||||
return this.BaseValidate(validationContext);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// To validate all properties of the instance
|
||||
/// </summary>
|
||||
/// <param name="validationContext">Validation context</param>
|
||||
/// <returns>Validation Result</returns>
|
||||
protected IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> BaseValidate(ValidationContext validationContext)
|
||||
{
|
||||
foreach(var x in base.BaseValidate(validationContext)) yield return x;
|
||||
yield break;
|
||||
|
||||
Reference in New Issue
Block a user