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:
Jim Schubert
2019-12-27 02:42:32 -05:00
committed by William Cheng
parent daec02b8c5
commit 376e419d0b
372 changed files with 23296 additions and 21 deletions

View File

@@ -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)

View 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)

View File

@@ -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)

View File

@@ -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'
}
}
}

View File

@@ -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'
}
}
}

View File

@@ -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>

View File

@@ -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;
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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;