55
66using System ;
77using System . IO ;
8+ using System . Text . Json . Nodes ;
89using Microsoft . OData . Edm ;
910using Microsoft . OpenApi . Extensions ;
1011using Xunit ;
@@ -14,7 +15,7 @@ namespace Microsoft.OpenApi.OData.Tests
1415{
1516 public class EdmModelOpenApiExtensionsTest
1617 {
17- private ITestOutputHelper _output ;
18+ private readonly ITestOutputHelper _output ;
1819
1920 public EdmModelOpenApiExtensionsTest ( ITestOutputHelper output )
2021 {
@@ -38,23 +39,24 @@ public void EmptyEdmModelToOpenApiJsonWorks(OpenApiSpecVersion specVersion)
3839 {
3940 // Arrange
4041 IEdmModel model = EdmModelHelper . EmptyModel ;
41- var openApiConvertSettings = new OpenApiConvertSettings ( ) ;
42- openApiConvertSettings . OpenApiSpecVersion = specVersion ;
43- openApiConvertSettings . IncludeAssemblyInfo = false ;
42+ var openApiConvertSettings = new OpenApiConvertSettings
43+ {
44+ OpenApiSpecVersion = specVersion ,
45+ IncludeAssemblyInfo = false
46+ } ;
4447
4548 // Act
4649 string json = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Json , openApiConvertSettings ) ;
4750 _output . WriteLine ( json ) ;
51+ var parsedJson = JsonNode . Parse ( json ) ;
52+ var fileName = specVersion switch {
53+ OpenApiSpecVersion . OpenApi2_0 => "Empty.OpenApi.V2.json" ,
54+ OpenApiSpecVersion . OpenApi3_0 => "Empty.OpenApi.json" ,
55+ _ => throw new NotImplementedException ( )
56+ } ;
4857
4958 // Assert
50- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
51- {
52- Assert . Equal ( Resources . GetString ( "Empty.OpenApi.V2.json" ) . ChangeLineBreaks ( ) , json ) ;
53- }
54- else
55- {
56- Assert . Equal ( Resources . GetString ( "Empty.OpenApi.json" ) . ChangeLineBreaks ( ) , json ) ;
57- }
59+ Assert . True ( JsonNode . DeepEquals ( JsonNode . Parse ( Resources . GetString ( fileName ) ) , parsedJson ) ) ;
5860 }
5961
6062 [ Theory ]
@@ -64,23 +66,24 @@ public void EmptyEdmModelToOpenApiYamlWorks(OpenApiSpecVersion specVersion)
6466 {
6567 // Arrange
6668 IEdmModel model = EdmModelHelper . EmptyModel ;
67- var openApiConvertSettings = new OpenApiConvertSettings ( ) ;
68- openApiConvertSettings . OpenApiSpecVersion = specVersion ;
69- openApiConvertSettings . IncludeAssemblyInfo = false ;
69+ var openApiConvertSettings = new OpenApiConvertSettings
70+ {
71+ OpenApiSpecVersion = specVersion ,
72+ IncludeAssemblyInfo = false
73+ } ;
7074
7175 // Act
7276 string yaml = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Yaml , openApiConvertSettings ) ;
7377 _output . WriteLine ( yaml ) ;
7478
79+ var fileName = specVersion switch {
80+ OpenApiSpecVersion . OpenApi2_0 => "Empty.OpenApi.V2.yaml" ,
81+ OpenApiSpecVersion . OpenApi3_0 => "Empty.OpenApi.yaml" ,
82+ _ => throw new NotImplementedException ( )
83+ } ;
84+
7585 // Assert
76- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
77- {
78- Assert . Equal ( Resources . GetString ( "Empty.OpenApi.V2.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
79- }
80- else
81- {
82- Assert . Equal ( Resources . GetString ( "Empty.OpenApi.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
83- }
86+ Assert . Equal ( Resources . GetString ( fileName ) . ChangeLineBreaks ( ) , yaml ) ;
8487 }
8588
8689 [ Theory ]
@@ -101,16 +104,15 @@ public void BasicEdmModelToOpenApiJsonWorks(OpenApiSpecVersion specVersion)
101104 // Act
102105 string json = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Json , openApiConvertSettings ) ;
103106 _output . WriteLine ( json ) ;
107+ var parsedJson = JsonNode . Parse ( json ) ;
108+ var fileName = specVersion switch {
109+ OpenApiSpecVersion . OpenApi2_0 => "Basic.OpenApi.V2.json" ,
110+ OpenApiSpecVersion . OpenApi3_0 => "Basic.OpenApi.json" ,
111+ _ => throw new NotImplementedException ( )
112+ } ;
104113
105114 // Assert
106- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
107- {
108- Assert . Equal ( Resources . GetString ( "Basic.OpenApi.V2.json" ) . ChangeLineBreaks ( ) , json ) ;
109- }
110- else
111- {
112- Assert . Equal ( Resources . GetString ( "Basic.OpenApi.json" ) . ChangeLineBreaks ( ) , json ) ;
113- }
115+ Assert . True ( JsonNode . DeepEquals ( JsonNode . Parse ( Resources . GetString ( fileName ) ) , parsedJson ) ) ;
114116 }
115117
116118 [ Theory ]
@@ -132,15 +134,14 @@ public void BasicEdmModelToOpenApiYamlWorks(OpenApiSpecVersion specVersion)
132134 string yaml = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Yaml , openApiConvertSettings ) ;
133135 _output . WriteLine ( yaml ) ;
134136
137+ var fileName = specVersion switch {
138+ OpenApiSpecVersion . OpenApi2_0 => "Basic.OpenApi.V2.yaml" ,
139+ OpenApiSpecVersion . OpenApi3_0 => "Basic.OpenApi.yaml" ,
140+ _ => throw new NotImplementedException ( )
141+ } ;
142+
135143 // Assert
136- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
137- {
138- Assert . Equal ( Resources . GetString ( "Basic.OpenApi.V2.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
139- }
140- else
141- {
142- Assert . Equal ( Resources . GetString ( "Basic.OpenApi.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
143- }
144+ Assert . Equal ( Resources . GetString ( fileName ) . ChangeLineBreaks ( ) , yaml ) ;
144145 }
145146
146147 [ Theory ]
@@ -163,15 +164,15 @@ public void MultipleSchemasEdmModelToOpenApiJsonWorks(OpenApiSpecVersion specVer
163164 string json = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Json , openApiConvertSettings ) ;
164165 _output . WriteLine ( json ) ;
165166
167+ var parsedJson = JsonNode . Parse ( json ) ;
168+ var fileName = specVersion switch {
169+ OpenApiSpecVersion . OpenApi2_0 => "Multiple.Schema.OpenApi.V2.json" ,
170+ OpenApiSpecVersion . OpenApi3_0 => "Multiple.Schema.OpenApi.json" ,
171+ _ => throw new NotImplementedException ( )
172+ } ;
173+
166174 // Assert
167- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
168- {
169- Assert . Equal ( Resources . GetString ( "Multiple.Schema.OpenApi.V2.json" ) . ChangeLineBreaks ( ) , json ) ;
170- }
171- else
172- {
173- Assert . Equal ( Resources . GetString ( "Multiple.Schema.OpenApi.json" ) . ChangeLineBreaks ( ) , json ) ;
174- }
175+ Assert . True ( JsonNode . DeepEquals ( JsonNode . Parse ( Resources . GetString ( fileName ) ) , parsedJson ) ) ;
175176 }
176177
177178 [ Theory ]
@@ -194,15 +195,14 @@ public void MultipleSchemasEdmModelToOpenApiYamlWorks(OpenApiSpecVersion specVer
194195 string yaml = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Yaml , openApiConvertSettings ) ;
195196 _output . WriteLine ( yaml ) ;
196197
198+ var fileName = specVersion switch {
199+ OpenApiSpecVersion . OpenApi2_0 => "Multiple.Schema.OpenApi.V2.yaml" ,
200+ OpenApiSpecVersion . OpenApi3_0 => "Multiple.Schema.OpenApi.yaml" ,
201+ _ => throw new NotImplementedException ( )
202+ } ;
203+
197204 // Assert
198- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
199- {
200- Assert . Equal ( Resources . GetString ( "Multiple.Schema.OpenApi.V2.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
201- }
202- else
203- {
204- Assert . Equal ( Resources . GetString ( "Multiple.Schema.OpenApi.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
205- }
205+ Assert . Equal ( Resources . GetString ( fileName ) . ChangeLineBreaks ( ) , yaml ) ;
206206 }
207207
208208 [ Theory ]
@@ -227,16 +227,16 @@ public void TripServiceMetadataToOpenApiJsonWorks(OpenApiSpecVersion specVersion
227227 // Act
228228 string json = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Json , settings ) ;
229229 _output . WriteLine ( json ) ;
230+ var parsedJson = JsonNode . Parse ( json ) ;
231+
232+ var fileName = specVersion switch {
233+ OpenApiSpecVersion . OpenApi2_0 => "TripService.OpenApi.V2.json" ,
234+ OpenApiSpecVersion . OpenApi3_0 => "TripService.OpenApi.json" ,
235+ _ => throw new NotImplementedException ( )
236+ } ;
230237
231238 // Assert
232- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
233- {
234- Assert . Equal ( Resources . GetString ( "TripService.OpenApi.V2.json" ) . ChangeLineBreaks ( ) , json ) ;
235- }
236- else
237- {
238- Assert . Equal ( Resources . GetString ( "TripService.OpenApi.json" ) . ChangeLineBreaks ( ) , json ) ;
239- }
239+ Assert . True ( JsonNode . DeepEquals ( JsonNode . Parse ( Resources . GetString ( fileName ) ) , parsedJson ) ) ;
240240 }
241241
242242 [ Theory ]
@@ -264,25 +264,24 @@ public void TripServiceMetadataToOpenApiYamlWorks(OpenApiSpecVersion specVersion
264264 string yaml = WriteEdmModelAsOpenApi ( model , OpenApiFormat . Yaml , settings ) ;
265265 _output . WriteLine ( yaml ) ;
266266
267+ var fileName = specVersion switch {
268+ OpenApiSpecVersion . OpenApi2_0 => "TripService.OpenApi.V2.yaml" ,
269+ OpenApiSpecVersion . OpenApi3_0 => "TripService.OpenApi.yaml" ,
270+ _ => throw new NotImplementedException ( )
271+ } ;
272+
267273 // Assert
268- if ( specVersion == OpenApiSpecVersion . OpenApi2_0 )
269- {
270- Assert . Equal ( Resources . GetString ( "TripService.OpenApi.V2.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
271- }
272- else
273- {
274- Assert . Equal ( Resources . GetString ( "TripService.OpenApi.yaml" ) . ChangeLineBreaks ( ) , yaml ) ;
275- }
274+ Assert . Equal ( Resources . GetString ( fileName ) . ChangeLineBreaks ( ) , yaml ) ;
276275 }
277276
278277 private static string WriteEdmModelAsOpenApi ( IEdmModel model , OpenApiFormat target ,
279278 OpenApiConvertSettings settings = null )
280279 {
281- settings = settings ?? new OpenApiConvertSettings ( ) ;
280+ settings ??= new OpenApiConvertSettings ( ) ;
282281 var document = model . ConvertToOpenApi ( settings ) ;
283282 Assert . NotNull ( document ) ; // guard
284283
285- MemoryStream stream = new MemoryStream ( ) ;
284+ MemoryStream stream = new ( ) ;
286285 document . Serialize ( stream , settings . OpenApiSpecVersion , target ) ;
287286 stream . Flush ( ) ;
288287 stream . Position = 0 ;
0 commit comments