-
Notifications
You must be signed in to change notification settings - Fork 204
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix #4002 - implement inheritance with enum discriminator - onboard http\type\model\inheritance\emum-discriminator cadl-ranch test project
- Loading branch information
Showing
25 changed files
with
1,518 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
82 changes: 82 additions & 0 deletions
82
...s/CadlRanch.Tests/Http/_Type/Model/Inheritance/EnumDiscriminator/EnumDiscriminatorTest.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT License. | ||
|
||
using System.Threading.Tasks; | ||
using _Type.Model.Inheritance.EnumDiscriminator; | ||
using _Type.Model.Inheritance.EnumDiscriminator.Models; | ||
using NUnit.Framework; | ||
|
||
namespace TestProjects.CadlRanch.Tests.Http._Type.Model.Inheritance.EnumDiscriminator | ||
{ | ||
public class EnumDiscriminatorTests : CadlRanchTestBase | ||
{ | ||
[CadlRanchTest] | ||
public Task PutExtensibleEnum() => Test(async (host) => | ||
{ | ||
var result = await new EnumDiscriminatorClient(host, null).PutExtensibleModelAsync(new Golden(10)); | ||
Assert.AreEqual(204, result.GetRawResponse().Status); | ||
}); | ||
|
||
[CadlRanchTest] | ||
public Task GetExtensibleEnum() => Test(async (host) => | ||
{ | ||
var result = await new EnumDiscriminatorClient(host, null).GetExtensibleModelAsync(); | ||
Assert.AreEqual(200, result.GetRawResponse().Status); | ||
Assert.AreEqual(10, result.Value.Weight); | ||
Assert.IsInstanceOf<Golden>(result.Value); | ||
}); | ||
|
||
[CadlRanchTest] | ||
public Task GetExtensibleModelMissingDiscriminator() => Test(async (host) => | ||
{ | ||
var result = await new EnumDiscriminatorClient(host, null).GetExtensibleModelMissingDiscriminatorAsync(); | ||
Assert.AreEqual(200, result.GetRawResponse().Status); | ||
Assert.IsNotInstanceOf<Golden>(result.Value); | ||
Assert.AreEqual(10, result.Value.Weight); | ||
}); | ||
|
||
[CadlRanchTest] | ||
public Task GetExtensibleModelWrongDiscriminator() => Test(async (host) => | ||
{ | ||
var result = await new EnumDiscriminatorClient(host, null).GetExtensibleModelWrongDiscriminatorAsync(); | ||
Assert.AreEqual(200, result.GetRawResponse().Status); | ||
Assert.IsNotInstanceOf<Golden>(result.Value); | ||
Assert.AreEqual(8, result.Value.Weight); | ||
}); | ||
|
||
[CadlRanchTest] | ||
public Task PutFixedEnum() => Test(async (host) => | ||
{ | ||
var result = await new EnumDiscriminatorClient(host, null).PutFixedModelAsync(new Cobra(10)); | ||
Assert.AreEqual(204, result.GetRawResponse().Status); | ||
}); | ||
|
||
[CadlRanchTest] | ||
public Task GetFixedEnum() => Test(async (host) => | ||
{ | ||
var result = await new EnumDiscriminatorClient(host, null).GetFixedModelAsync(); | ||
Assert.AreEqual(200, result.GetRawResponse().Status); | ||
Assert.AreEqual(10, result.Value.Length); | ||
Assert.IsInstanceOf<Cobra>(result.Value); | ||
}); | ||
|
||
[CadlRanchTest] | ||
public Task GetFixedModelMissingDiscriminator() => Test(async (host) => | ||
{ | ||
var response = await new EnumDiscriminatorClient(host, null).GetExtensibleModelMissingDiscriminatorAsync(); | ||
Assert.AreEqual(200, response.GetRawResponse().Status); | ||
Assert.IsNotInstanceOf<Golden>(response.Value); | ||
Assert.AreEqual(10, response.Value.Weight); | ||
}); | ||
|
||
[CadlRanchTest] | ||
public Task GetFixedModelWrongDiscriminator() => Test(async (host) => | ||
{ | ||
var result = await new EnumDiscriminatorClient(host, null).GetExtensibleModelWrongDiscriminatorAsync(); | ||
Assert.AreEqual(200, result.GetRawResponse().Status); | ||
Assert.IsNotInstanceOf<Golden>(result.Value); | ||
Assert.AreEqual(8, result.Value.Weight); | ||
}); | ||
|
||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
.../TestProjects/CadlRanch/http/type/model/inheritance/enum-discriminator/Configuration.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"output-folder": ".", | ||
"namespace": "Type.Model.Inheritance.EnumDiscriminator", | ||
"library-name": "Type.Model.Inheritance.EnumDiscriminator", | ||
"use-model-reader-writer": true | ||
} |
48 changes: 48 additions & 0 deletions
48
...p/type/model/inheritance/enum-discriminator/_Type.Model.Inheritance.EnumDiscriminator.sln
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio Version 16 | ||
VisualStudioVersion = 16.0.29709.97 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "_Type.Model.Inheritance.EnumDiscriminator", "src\_Type.Model.Inheritance.EnumDiscriminator.csproj", "{28FF4005-4467-4E36-92E7-DEA27DEB1519}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{B0C276D1-2930-4887-B29A-D1A33E7009A2}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{B0C276D1-2930-4887-B29A-D1A33E7009A2}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{8E9A77AC-792A-4432-8320-ACFD46730401}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{8E9A77AC-792A-4432-8320-ACFD46730401}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{A4241C1F-A53D-474C-9E4E-075054407E74}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{A4241C1F-A53D-474C-9E4E-075054407E74}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{FA8BD3F1-8616-47B6-974C-7576CDF4717E}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{85677AD3-C214-42FA-AE6E-49B956CAC8DC}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{28FF4005-4467-4E36-92E7-DEA27DEB1519}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{28FF4005-4467-4E36-92E7-DEA27DEB1519}.Release|Any CPU.Build.0 = Release|Any CPU | ||
{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{1F1CD1D4-9932-4B73-99D8-C252A67D4B46}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(ExtensibilityGlobals) = postSolution | ||
SolutionGuid = {A97F4B90-2591-4689-B1F8-5F21FE6D6CAE} | ||
EndGlobalSection | ||
EndGlobal |
85 changes: 85 additions & 0 deletions
85
...h/http/type/model/inheritance/enum-discriminator/src/Generated/EnumDiscriminatorClient.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
// <auto-generated/> | ||
|
||
#nullable disable | ||
|
||
using System; | ||
using System.ClientModel; | ||
using System.ClientModel.Primitives; | ||
using System.Threading.Tasks; | ||
using _Type.Model.Inheritance.EnumDiscriminator.Models; | ||
|
||
namespace _Type.Model.Inheritance.EnumDiscriminator | ||
{ | ||
public partial class EnumDiscriminatorClient | ||
{ | ||
public EnumDiscriminatorClient() : this(new Uri("http://localhost:3000"), new EnumDiscriminatorClientOptions()) => throw null; | ||
|
||
public EnumDiscriminatorClient(Uri endpoint, EnumDiscriminatorClientOptions options) => throw null; | ||
|
||
public ClientPipeline Pipeline => throw null; | ||
|
||
public virtual ClientResult GetExtensibleModel(RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> GetExtensibleModelAsync(RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult<Dog> GetExtensibleModel() => throw null; | ||
|
||
public virtual Task<ClientResult<Dog>> GetExtensibleModelAsync() => throw null; | ||
|
||
public virtual ClientResult PutExtensibleModel(BinaryContent content, RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> PutExtensibleModelAsync(BinaryContent content, RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult PutExtensibleModel(Dog input) => throw null; | ||
|
||
public virtual Task<ClientResult> PutExtensibleModelAsync(Dog input) => throw null; | ||
|
||
public virtual ClientResult GetExtensibleModelMissingDiscriminator(RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> GetExtensibleModelMissingDiscriminatorAsync(RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult<Dog> GetExtensibleModelMissingDiscriminator() => throw null; | ||
|
||
public virtual Task<ClientResult<Dog>> GetExtensibleModelMissingDiscriminatorAsync() => throw null; | ||
|
||
public virtual ClientResult GetExtensibleModelWrongDiscriminator(RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> GetExtensibleModelWrongDiscriminatorAsync(RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult<Dog> GetExtensibleModelWrongDiscriminator() => throw null; | ||
|
||
public virtual Task<ClientResult<Dog>> GetExtensibleModelWrongDiscriminatorAsync() => throw null; | ||
|
||
public virtual ClientResult GetFixedModel(RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> GetFixedModelAsync(RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult<Snake> GetFixedModel() => throw null; | ||
|
||
public virtual Task<ClientResult<Snake>> GetFixedModelAsync() => throw null; | ||
|
||
public virtual ClientResult PutFixedModel(BinaryContent content, RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> PutFixedModelAsync(BinaryContent content, RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult PutFixedModel(Snake input) => throw null; | ||
|
||
public virtual Task<ClientResult> PutFixedModelAsync(Snake input) => throw null; | ||
|
||
public virtual ClientResult GetFixedModelMissingDiscriminator(RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> GetFixedModelMissingDiscriminatorAsync(RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult<Snake> GetFixedModelMissingDiscriminator() => throw null; | ||
|
||
public virtual Task<ClientResult<Snake>> GetFixedModelMissingDiscriminatorAsync() => throw null; | ||
|
||
public virtual ClientResult GetFixedModelWrongDiscriminator(RequestOptions options) => throw null; | ||
|
||
public virtual Task<ClientResult> GetFixedModelWrongDiscriminatorAsync(RequestOptions options) => throw null; | ||
|
||
public virtual ClientResult<Snake> GetFixedModelWrongDiscriminator() => throw null; | ||
|
||
public virtual Task<ClientResult<Snake>> GetFixedModelWrongDiscriminatorAsync() => throw null; | ||
} | ||
} |
12 changes: 12 additions & 0 deletions
12
...type/model/inheritance/enum-discriminator/src/Generated/EnumDiscriminatorClientOptions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// <auto-generated/> | ||
|
||
#nullable disable | ||
|
||
using System.ClientModel.Primitives; | ||
|
||
namespace _Type.Model.Inheritance.EnumDiscriminator | ||
{ | ||
public partial class EnumDiscriminatorClientOptions : ClientPipelineOptions | ||
{ | ||
} | ||
} |
36 changes: 36 additions & 0 deletions
36
...ttp/type/model/inheritance/enum-discriminator/src/Generated/Models/Cobra.Serialization.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
// <auto-generated/> | ||
|
||
#nullable disable | ||
|
||
using System; | ||
using System.ClientModel; | ||
using System.ClientModel.Primitives; | ||
using System.Text.Json; | ||
|
||
namespace _Type.Model.Inheritance.EnumDiscriminator.Models | ||
{ | ||
public partial class Cobra : IJsonModel<Cobra> | ||
{ | ||
void IJsonModel<Cobra>.Write(Utf8JsonWriter writer, ModelReaderWriterOptions options) => throw null; | ||
|
||
protected override void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options) => throw null; | ||
|
||
Cobra IJsonModel<Cobra>.Create(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => throw null; | ||
|
||
protected override Snake JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options) => throw null; | ||
|
||
BinaryData IPersistableModel<Cobra>.Write(ModelReaderWriterOptions options) => throw null; | ||
|
||
protected override BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options) => throw null; | ||
|
||
Cobra IPersistableModel<Cobra>.Create(BinaryData data, ModelReaderWriterOptions options) => throw null; | ||
|
||
protected override Snake PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options) => throw null; | ||
|
||
string IPersistableModel<Cobra>.GetFormatFromOptions(ModelReaderWriterOptions options) => throw null; | ||
|
||
public static implicit operator BinaryContent(Cobra cobra) => throw null; | ||
|
||
public static explicit operator Cobra(ClientResult result) => throw null; | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
...ts/CadlRanch/http/type/model/inheritance/enum-discriminator/src/Generated/Models/Cobra.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// <auto-generated/> | ||
|
||
#nullable disable | ||
|
||
using System; | ||
using System.Collections.Generic; | ||
|
||
namespace _Type.Model.Inheritance.EnumDiscriminator.Models | ||
{ | ||
public partial class Cobra : Snake | ||
{ | ||
public Cobra(int length) : base(SnakeKind.Cobra, length) => throw null; | ||
|
||
internal Cobra(int length, IDictionary<string, BinaryData> serializedAdditionalRawData) : base(SnakeKind.Cobra, length, serializedAdditionalRawData) => throw null; | ||
} | ||
} |
Oops, something went wrong.