[csharp][generichost] Implement not required nullable properties (#16810)

* init

* fixed read and write

* completed changes using latest-nrt sample

* fixed all samples

* add null check on write, change on exception

* resolved conflicts

* build samples

* added backing property for not required properties

* more not required and nullable hanlding improvements

* revert sample updates for a merge master

* revert sample updates for a merge master

* sample build is working, need to remove warnings

* fixed warnings in .net 7 with nrt

* fixed manual tests

* fixed all samples

* fix npe

* removed debugging lines

* revert changes to unused file

* removed unused lambdas

* fix a serialization bug

* make option a hidden property

* updated documentation

* improved parameter ordering
This commit is contained in:
devhl-labs
2023-11-12 21:16:35 -05:00
committed by GitHub
parent 2f655f1a9c
commit 7e529926a6
490 changed files with 46093 additions and 9072 deletions

View File

@@ -77,6 +77,7 @@ docs/PolymorphicProperty.md
docs/Quadrilateral.md
docs/QuadrilateralInterface.md
docs/ReadOnlyFirst.md
docs/RequiredClass.md
docs/Return.md
docs/RolesReportsHash.md
docs/RolesReportsHashRole.md
@@ -198,6 +199,7 @@ src/Org.OpenAPITools/Model/PolymorphicProperty.cs
src/Org.OpenAPITools/Model/Quadrilateral.cs
src/Org.OpenAPITools/Model/QuadrilateralInterface.cs
src/Org.OpenAPITools/Model/ReadOnlyFirst.cs
src/Org.OpenAPITools/Model/RequiredClass.cs
src/Org.OpenAPITools/Model/Return.cs
src/Org.OpenAPITools/Model/RolesReportsHash.cs
src/Org.OpenAPITools/Model/RolesReportsHashRole.cs

View File

@@ -233,6 +233,7 @@ Class | Method | HTTP request | Description
- [Model.Quadrilateral](docs/Quadrilateral.md)
- [Model.QuadrilateralInterface](docs/QuadrilateralInterface.md)
- [Model.ReadOnlyFirst](docs/ReadOnlyFirst.md)
- [Model.RequiredClass](docs/RequiredClass.md)
- [Model.Return](docs/Return.md)
- [Model.RolesReportsHash](docs/RolesReportsHash.md)
- [Model.RolesReportsHashRole](docs/RolesReportsHashRole.md)

View File

@@ -1946,6 +1946,264 @@ components:
nullable: true
type: string
type: object
RequiredClass:
properties:
required_nullable_integer_prop:
nullable: true
type: integer
required_notnullableinteger_prop:
nullable: false
type: integer
not_required_nullable_integer_prop:
nullable: true
type: integer
not_required_notnullableinteger_prop:
nullable: false
type: integer
required_nullable_string_prop:
nullable: true
type: string
required_notnullable_string_prop:
nullable: false
type: string
notrequired_nullable_string_prop:
nullable: true
type: string
notrequired_notnullable_string_prop:
nullable: false
type: string
required_nullable_boolean_prop:
nullable: true
type: boolean
required_notnullable_boolean_prop:
nullable: false
type: boolean
notrequired_nullable_boolean_prop:
nullable: true
type: boolean
notrequired_notnullable_boolean_prop:
nullable: false
type: boolean
required_nullable_date_prop:
format: date
nullable: true
type: string
required_not_nullable_date_prop:
format: date
nullable: false
type: string
not_required_nullable_date_prop:
format: date
nullable: true
type: string
not_required_notnullable_date_prop:
format: date
nullable: false
type: string
required_notnullable_datetime_prop:
format: date-time
nullable: false
type: string
required_nullable_datetime_prop:
format: date-time
nullable: true
type: string
notrequired_nullable_datetime_prop:
format: date-time
nullable: true
type: string
notrequired_notnullable_datetime_prop:
format: date-time
nullable: false
type: string
required_nullable_enum_integer:
enum:
- 1
- -1
format: int32
nullable: true
type: integer
required_notnullable_enum_integer:
enum:
- 1
- -1
format: int32
nullable: false
type: integer
notrequired_nullable_enum_integer:
enum:
- 1
- -1
format: int32
nullable: true
type: integer
notrequired_notnullable_enum_integer:
enum:
- 1
- -1
format: int32
nullable: false
type: integer
required_nullable_enum_integer_only:
enum:
- 2
- -2
nullable: true
type: integer
required_notnullable_enum_integer_only:
enum:
- 2
- -2
nullable: false
type: integer
notrequired_nullable_enum_integer_only:
enum:
- 2
- -2
nullable: true
type: integer
notrequired_notnullable_enum_integer_only:
enum:
- 2
- -2
nullable: false
type: integer
required_notnullable_enum_string:
enum:
- UPPER
- lower
- ""
- "Value\twith tab"
- Value with " quote
- Value with escaped \" quote
- |-
Duplicate
value
- "Duplicate\r\nvalue"
nullable: false
type: string
required_nullable_enum_string:
enum:
- UPPER
- lower
- ""
- "Value\twith tab"
- Value with " quote
- Value with escaped \" quote
- |-
Duplicate
value
- "Duplicate\r\nvalue"
nullable: true
type: string
notrequired_nullable_enum_string:
enum:
- UPPER
- lower
- ""
- "Value\twith tab"
- Value with " quote
- Value with escaped \" quote
- |-
Duplicate
value
- "Duplicate\r\nvalue"
nullable: true
type: string
notrequired_notnullable_enum_string:
enum:
- UPPER
- lower
- ""
- "Value\twith tab"
- Value with " quote
- Value with escaped \" quote
- |-
Duplicate
value
- "Duplicate\r\nvalue"
nullable: false
type: string
required_nullable_outerEnumDefaultValue:
allOf:
- $ref: '#/components/schemas/OuterEnumDefaultValue'
nullable: true
required_notnullable_outerEnumDefaultValue:
allOf:
- $ref: '#/components/schemas/OuterEnumDefaultValue'
nullable: false
notrequired_nullable_outerEnumDefaultValue:
allOf:
- $ref: '#/components/schemas/OuterEnumDefaultValue'
nullable: true
notrequired_notnullable_outerEnumDefaultValue:
allOf:
- $ref: '#/components/schemas/OuterEnumDefaultValue'
nullable: false
required_nullable_uuid:
example: 72f98069-206d-4f12-9f12-3d1e525a8e84
format: uuid
nullable: true
type: string
required_notnullable_uuid:
example: 72f98069-206d-4f12-9f12-3d1e525a8e84
format: uuid
nullable: false
type: string
notrequired_nullable_uuid:
example: 72f98069-206d-4f12-9f12-3d1e525a8e84
format: uuid
nullable: true
type: string
notrequired_notnullable_uuid:
example: 72f98069-206d-4f12-9f12-3d1e525a8e84
format: uuid
nullable: false
type: string
required_nullable_array_of_string:
items:
type: string
nullable: true
type: array
required_notnullable_array_of_string:
items:
type: string
nullable: false
type: array
notrequired_nullable_array_of_string:
items:
type: string
nullable: true
type: array
notrequired_notnullable_array_of_string:
items:
type: string
nullable: false
type: array
required:
- required_not_nullable_date_prop
- required_notnullable_array_of_string
- required_notnullable_boolean_prop
- required_notnullable_datetime_prop
- required_notnullable_enum_integer
- required_notnullable_enum_integer_only
- required_notnullable_enum_string
- required_notnullable_outerEnumDefaultValue
- required_notnullable_string_prop
- required_notnullable_uuid
- required_notnullableinteger_prop
- required_nullable_array_of_string
- required_nullable_boolean_prop
- required_nullable_date_prop
- required_nullable_datetime_prop
- required_nullable_enum_integer
- required_nullable_enum_integer_only
- required_nullable_enum_string
- required_nullable_integer_prop
- required_nullable_outerEnumDefaultValue
- required_nullable_string_prop
- required_nullable_uuid
type: object
NullableClass:
additionalProperties:
nullable: true

View File

@@ -0,0 +1,53 @@
# Org.OpenAPITools.Model.RequiredClass
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**RequiredNullableIntegerProp** | **int?** | |
**RequiredNotnullableintegerProp** | **int** | |
**NotRequiredNullableIntegerProp** | **int?** | | [optional]
**NotRequiredNotnullableintegerProp** | **int** | | [optional]
**RequiredNullableStringProp** | **string** | |
**RequiredNotnullableStringProp** | **string** | |
**NotrequiredNullableStringProp** | **string** | | [optional]
**NotrequiredNotnullableStringProp** | **string** | | [optional]
**RequiredNullableBooleanProp** | **bool?** | |
**RequiredNotnullableBooleanProp** | **bool** | |
**NotrequiredNullableBooleanProp** | **bool?** | | [optional]
**NotrequiredNotnullableBooleanProp** | **bool** | | [optional]
**RequiredNullableDateProp** | **DateTime?** | |
**RequiredNotNullableDateProp** | **DateTime** | |
**NotRequiredNullableDateProp** | **DateTime?** | | [optional]
**NotRequiredNotnullableDateProp** | **DateTime** | | [optional]
**RequiredNotnullableDatetimeProp** | **DateTime** | |
**RequiredNullableDatetimeProp** | **DateTime?** | |
**NotrequiredNullableDatetimeProp** | **DateTime?** | | [optional]
**NotrequiredNotnullableDatetimeProp** | **DateTime** | | [optional]
**RequiredNullableEnumInteger** | **int?** | |
**RequiredNotnullableEnumInteger** | **int** | |
**NotrequiredNullableEnumInteger** | **int?** | | [optional]
**NotrequiredNotnullableEnumInteger** | **int** | | [optional]
**RequiredNullableEnumIntegerOnly** | **int?** | |
**RequiredNotnullableEnumIntegerOnly** | **int** | |
**NotrequiredNullableEnumIntegerOnly** | **int?** | | [optional]
**NotrequiredNotnullableEnumIntegerOnly** | **int** | | [optional]
**RequiredNotnullableEnumString** | **string** | |
**RequiredNullableEnumString** | **string** | |
**NotrequiredNullableEnumString** | **string** | | [optional]
**NotrequiredNotnullableEnumString** | **string** | | [optional]
**RequiredNullableOuterEnumDefaultValue** | **OuterEnumDefaultValue** | |
**RequiredNotnullableOuterEnumDefaultValue** | **OuterEnumDefaultValue** | |
**NotrequiredNullableOuterEnumDefaultValue** | **OuterEnumDefaultValue** | | [optional]
**NotrequiredNotnullableOuterEnumDefaultValue** | **OuterEnumDefaultValue** | | [optional]
**RequiredNullableUuid** | **Guid?** | |
**RequiredNotnullableUuid** | **Guid** | |
**NotrequiredNullableUuid** | **Guid?** | | [optional]
**NotrequiredNotnullableUuid** | **Guid** | | [optional]
**RequiredNullableArrayOfString** | **List<string>** | |
**RequiredNotnullableArrayOfString** | **List<string>** | |
**NotrequiredNullableArrayOfString** | **List<string>** | | [optional]
**NotrequiredNotnullableArrayOfString** | **List<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,453 @@
/*
* 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 Xunit;
using System;
using System.Linq;
using System.IO;
using System.Collections.Generic;
using Org.OpenAPITools.Model;
using Org.OpenAPITools.Client;
using System.Reflection;
using Newtonsoft.Json;
namespace Org.OpenAPITools.Test.Model
{
/// <summary>
/// Class for testing RequiredClass
/// </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 RequiredClassTests : IDisposable
{
// TODO uncomment below to declare an instance variable for RequiredClass
//private RequiredClass instance;
public RequiredClassTests()
{
// TODO uncomment below to create an instance of RequiredClass
//instance = new RequiredClass();
}
public void Dispose()
{
// Cleanup when everything is done.
}
/// <summary>
/// Test an instance of RequiredClass
/// </summary>
[Fact]
public void RequiredClassInstanceTest()
{
// TODO uncomment below to test "IsType" RequiredClass
//Assert.IsType<RequiredClass>(instance);
}
/// <summary>
/// Test the property 'RequiredNullableIntegerProp'
/// </summary>
[Fact]
public void RequiredNullableIntegerPropTest()
{
// TODO unit test for the property 'RequiredNullableIntegerProp'
}
/// <summary>
/// Test the property 'RequiredNotnullableintegerProp'
/// </summary>
[Fact]
public void RequiredNotnullableintegerPropTest()
{
// TODO unit test for the property 'RequiredNotnullableintegerProp'
}
/// <summary>
/// Test the property 'NotRequiredNullableIntegerProp'
/// </summary>
[Fact]
public void NotRequiredNullableIntegerPropTest()
{
// TODO unit test for the property 'NotRequiredNullableIntegerProp'
}
/// <summary>
/// Test the property 'NotRequiredNotnullableintegerProp'
/// </summary>
[Fact]
public void NotRequiredNotnullableintegerPropTest()
{
// TODO unit test for the property 'NotRequiredNotnullableintegerProp'
}
/// <summary>
/// Test the property 'RequiredNullableStringProp'
/// </summary>
[Fact]
public void RequiredNullableStringPropTest()
{
// TODO unit test for the property 'RequiredNullableStringProp'
}
/// <summary>
/// Test the property 'RequiredNotnullableStringProp'
/// </summary>
[Fact]
public void RequiredNotnullableStringPropTest()
{
// TODO unit test for the property 'RequiredNotnullableStringProp'
}
/// <summary>
/// Test the property 'NotrequiredNullableStringProp'
/// </summary>
[Fact]
public void NotrequiredNullableStringPropTest()
{
// TODO unit test for the property 'NotrequiredNullableStringProp'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableStringProp'
/// </summary>
[Fact]
public void NotrequiredNotnullableStringPropTest()
{
// TODO unit test for the property 'NotrequiredNotnullableStringProp'
}
/// <summary>
/// Test the property 'RequiredNullableBooleanProp'
/// </summary>
[Fact]
public void RequiredNullableBooleanPropTest()
{
// TODO unit test for the property 'RequiredNullableBooleanProp'
}
/// <summary>
/// Test the property 'RequiredNotnullableBooleanProp'
/// </summary>
[Fact]
public void RequiredNotnullableBooleanPropTest()
{
// TODO unit test for the property 'RequiredNotnullableBooleanProp'
}
/// <summary>
/// Test the property 'NotrequiredNullableBooleanProp'
/// </summary>
[Fact]
public void NotrequiredNullableBooleanPropTest()
{
// TODO unit test for the property 'NotrequiredNullableBooleanProp'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableBooleanProp'
/// </summary>
[Fact]
public void NotrequiredNotnullableBooleanPropTest()
{
// TODO unit test for the property 'NotrequiredNotnullableBooleanProp'
}
/// <summary>
/// Test the property 'RequiredNullableDateProp'
/// </summary>
[Fact]
public void RequiredNullableDatePropTest()
{
// TODO unit test for the property 'RequiredNullableDateProp'
}
/// <summary>
/// Test the property 'RequiredNotNullableDateProp'
/// </summary>
[Fact]
public void RequiredNotNullableDatePropTest()
{
// TODO unit test for the property 'RequiredNotNullableDateProp'
}
/// <summary>
/// Test the property 'NotRequiredNullableDateProp'
/// </summary>
[Fact]
public void NotRequiredNullableDatePropTest()
{
// TODO unit test for the property 'NotRequiredNullableDateProp'
}
/// <summary>
/// Test the property 'NotRequiredNotnullableDateProp'
/// </summary>
[Fact]
public void NotRequiredNotnullableDatePropTest()
{
// TODO unit test for the property 'NotRequiredNotnullableDateProp'
}
/// <summary>
/// Test the property 'RequiredNotnullableDatetimeProp'
/// </summary>
[Fact]
public void RequiredNotnullableDatetimePropTest()
{
// TODO unit test for the property 'RequiredNotnullableDatetimeProp'
}
/// <summary>
/// Test the property 'RequiredNullableDatetimeProp'
/// </summary>
[Fact]
public void RequiredNullableDatetimePropTest()
{
// TODO unit test for the property 'RequiredNullableDatetimeProp'
}
/// <summary>
/// Test the property 'NotrequiredNullableDatetimeProp'
/// </summary>
[Fact]
public void NotrequiredNullableDatetimePropTest()
{
// TODO unit test for the property 'NotrequiredNullableDatetimeProp'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableDatetimeProp'
/// </summary>
[Fact]
public void NotrequiredNotnullableDatetimePropTest()
{
// TODO unit test for the property 'NotrequiredNotnullableDatetimeProp'
}
/// <summary>
/// Test the property 'RequiredNullableEnumInteger'
/// </summary>
[Fact]
public void RequiredNullableEnumIntegerTest()
{
// TODO unit test for the property 'RequiredNullableEnumInteger'
}
/// <summary>
/// Test the property 'RequiredNotnullableEnumInteger'
/// </summary>
[Fact]
public void RequiredNotnullableEnumIntegerTest()
{
// TODO unit test for the property 'RequiredNotnullableEnumInteger'
}
/// <summary>
/// Test the property 'NotrequiredNullableEnumInteger'
/// </summary>
[Fact]
public void NotrequiredNullableEnumIntegerTest()
{
// TODO unit test for the property 'NotrequiredNullableEnumInteger'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableEnumInteger'
/// </summary>
[Fact]
public void NotrequiredNotnullableEnumIntegerTest()
{
// TODO unit test for the property 'NotrequiredNotnullableEnumInteger'
}
/// <summary>
/// Test the property 'RequiredNullableEnumIntegerOnly'
/// </summary>
[Fact]
public void RequiredNullableEnumIntegerOnlyTest()
{
// TODO unit test for the property 'RequiredNullableEnumIntegerOnly'
}
/// <summary>
/// Test the property 'RequiredNotnullableEnumIntegerOnly'
/// </summary>
[Fact]
public void RequiredNotnullableEnumIntegerOnlyTest()
{
// TODO unit test for the property 'RequiredNotnullableEnumIntegerOnly'
}
/// <summary>
/// Test the property 'NotrequiredNullableEnumIntegerOnly'
/// </summary>
[Fact]
public void NotrequiredNullableEnumIntegerOnlyTest()
{
// TODO unit test for the property 'NotrequiredNullableEnumIntegerOnly'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableEnumIntegerOnly'
/// </summary>
[Fact]
public void NotrequiredNotnullableEnumIntegerOnlyTest()
{
// TODO unit test for the property 'NotrequiredNotnullableEnumIntegerOnly'
}
/// <summary>
/// Test the property 'RequiredNotnullableEnumString'
/// </summary>
[Fact]
public void RequiredNotnullableEnumStringTest()
{
// TODO unit test for the property 'RequiredNotnullableEnumString'
}
/// <summary>
/// Test the property 'RequiredNullableEnumString'
/// </summary>
[Fact]
public void RequiredNullableEnumStringTest()
{
// TODO unit test for the property 'RequiredNullableEnumString'
}
/// <summary>
/// Test the property 'NotrequiredNullableEnumString'
/// </summary>
[Fact]
public void NotrequiredNullableEnumStringTest()
{
// TODO unit test for the property 'NotrequiredNullableEnumString'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableEnumString'
/// </summary>
[Fact]
public void NotrequiredNotnullableEnumStringTest()
{
// TODO unit test for the property 'NotrequiredNotnullableEnumString'
}
/// <summary>
/// Test the property 'RequiredNullableOuterEnumDefaultValue'
/// </summary>
[Fact]
public void RequiredNullableOuterEnumDefaultValueTest()
{
// TODO unit test for the property 'RequiredNullableOuterEnumDefaultValue'
}
/// <summary>
/// Test the property 'RequiredNotnullableOuterEnumDefaultValue'
/// </summary>
[Fact]
public void RequiredNotnullableOuterEnumDefaultValueTest()
{
// TODO unit test for the property 'RequiredNotnullableOuterEnumDefaultValue'
}
/// <summary>
/// Test the property 'NotrequiredNullableOuterEnumDefaultValue'
/// </summary>
[Fact]
public void NotrequiredNullableOuterEnumDefaultValueTest()
{
// TODO unit test for the property 'NotrequiredNullableOuterEnumDefaultValue'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableOuterEnumDefaultValue'
/// </summary>
[Fact]
public void NotrequiredNotnullableOuterEnumDefaultValueTest()
{
// TODO unit test for the property 'NotrequiredNotnullableOuterEnumDefaultValue'
}
/// <summary>
/// Test the property 'RequiredNullableUuid'
/// </summary>
[Fact]
public void RequiredNullableUuidTest()
{
// TODO unit test for the property 'RequiredNullableUuid'
}
/// <summary>
/// Test the property 'RequiredNotnullableUuid'
/// </summary>
[Fact]
public void RequiredNotnullableUuidTest()
{
// TODO unit test for the property 'RequiredNotnullableUuid'
}
/// <summary>
/// Test the property 'NotrequiredNullableUuid'
/// </summary>
[Fact]
public void NotrequiredNullableUuidTest()
{
// TODO unit test for the property 'NotrequiredNullableUuid'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableUuid'
/// </summary>
[Fact]
public void NotrequiredNotnullableUuidTest()
{
// TODO unit test for the property 'NotrequiredNotnullableUuid'
}
/// <summary>
/// Test the property 'RequiredNullableArrayOfString'
/// </summary>
[Fact]
public void RequiredNullableArrayOfStringTest()
{
// TODO unit test for the property 'RequiredNullableArrayOfString'
}
/// <summary>
/// Test the property 'RequiredNotnullableArrayOfString'
/// </summary>
[Fact]
public void RequiredNotnullableArrayOfStringTest()
{
// TODO unit test for the property 'RequiredNotnullableArrayOfString'
}
/// <summary>
/// Test the property 'NotrequiredNullableArrayOfString'
/// </summary>
[Fact]
public void NotrequiredNullableArrayOfStringTest()
{
// TODO unit test for the property 'NotrequiredNullableArrayOfString'
}
/// <summary>
/// Test the property 'NotrequiredNotnullableArrayOfString'
/// </summary>
[Fact]
public void NotrequiredNotnullableArrayOfStringTest()
{
// TODO unit test for the property 'NotrequiredNotnullableArrayOfString'
}
}
}