Skip to content

Commit 5aa1dc8

Browse files
committed
- Add TestHelper and move redundant code there
1 parent 0c9ee09 commit 5aa1dc8

File tree

2 files changed

+111
-115
lines changed

2 files changed

+111
-115
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license.
3+
4+
using System.IO;
5+
using System.Linq;
6+
using Microsoft.OpenApi.Readers.ParseNodes;
7+
using SharpYaml.Serialization;
8+
9+
namespace Microsoft.OpenApi.Readers.Tests
10+
{
11+
internal class TestHelper
12+
{
13+
public static MapNode CreateYamlMapNode(Stream stream)
14+
{
15+
var yamlStream = new YamlStream();
16+
yamlStream.Load(new StreamReader(stream));
17+
var yamlNode = yamlStream.Documents.First().RootNode;
18+
19+
var context = new ParsingContext();
20+
var diagnostic = new OpenApiDiagnostic();
21+
22+
return new MapNode(context, diagnostic, (YamlMappingNode)yamlNode);
23+
}
24+
}
25+
}
Lines changed: 86 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT license.
33

4-
using System;
54
using System.IO;
6-
using System.Linq;
75
using FluentAssertions;
86
using Microsoft.OpenApi.Models;
97
using Microsoft.OpenApi.Readers.ParseNodes;
108
using Microsoft.OpenApi.Readers.V2;
11-
using SharpYaml.Serialization;
129
using Xunit;
1310

1411
namespace Microsoft.OpenApi.Readers.Tests.V2Tests
@@ -21,160 +18,134 @@ public class OpenApiParameterTests
2118
[Fact]
2219
public void ParseBodyParameterShouldSucceed()
2320
{
21+
MapNode node;
22+
// Arrange
2423
using (var stream = File.OpenRead(Path.Combine(SampleFolderPath, "bodyParameter.yaml")))
2524
{
26-
var yamlStream = new YamlStream();
27-
yamlStream.Load(new StreamReader(stream));
28-
var yamlNode = yamlStream.Documents.First().RootNode;
29-
30-
var context = new ParsingContext();
31-
var diagnostic = new OpenApiDiagnostic();
32-
33-
var node = new MapNode(context, diagnostic, (YamlMappingNode)yamlNode);
25+
node = TestHelper.CreateYamlMapNode(stream);
26+
}
3427

35-
// Act
36-
var parameter = OpenApiV2Deserializer.LoadParameter(node);
28+
// Act
29+
var parameter = OpenApiV2Deserializer.LoadParameter(node);
3730

38-
// Assert
39-
// Body parameter is currently not translated via LoadParameter.
40-
// This design may be revisited and this unit test may likely change.
41-
parameter.ShouldBeEquivalentTo(null);
42-
}
31+
// Assert
32+
// Body parameter is currently not translated via LoadParameter.
33+
// This design may be revisited and this unit test may likely change.
34+
parameter.ShouldBeEquivalentTo(null);
4335
}
4436

4537
[Fact]
4638
public void ParsePathParameterShouldSucceed()
4739
{
40+
MapNode node;
41+
// Arrange
4842
using (var stream = File.OpenRead(Path.Combine(SampleFolderPath, "pathParameter.yaml")))
4943
{
50-
var yamlStream = new YamlStream();
51-
yamlStream.Load(new StreamReader(stream));
52-
var yamlNode = yamlStream.Documents.First().RootNode;
53-
54-
var context = new ParsingContext();
55-
var diagnostic = new OpenApiDiagnostic();
56-
57-
var node = new MapNode(context, diagnostic, (YamlMappingNode)yamlNode);
58-
59-
// Act
60-
var parameter = OpenApiV2Deserializer.LoadParameter(node);
44+
node = TestHelper.CreateYamlMapNode(stream);
45+
}
6146

62-
// Assert
63-
parameter.ShouldBeEquivalentTo(
64-
new OpenApiParameter
47+
// Act
48+
var parameter = OpenApiV2Deserializer.LoadParameter(node);
49+
50+
// Assert
51+
parameter.ShouldBeEquivalentTo(
52+
new OpenApiParameter
53+
{
54+
In = ParameterLocation.Path,
55+
Name = "username",
56+
Description = "username to fetch",
57+
Required = true,
58+
Schema = new OpenApiSchema
6559
{
66-
In = ParameterLocation.Path,
67-
Name = "username",
68-
Description = "username to fetch",
69-
Required = true,
70-
Schema = new OpenApiSchema()
71-
{
72-
Type = "string"
73-
}
74-
});
75-
}
60+
Type = "string"
61+
}
62+
});
7663
}
7764

7865
[Fact]
7966
public void ParseQueryParameterShouldSucceed()
8067
{
68+
MapNode node;
69+
// Arrange
8170
using (var stream = File.OpenRead(Path.Combine(SampleFolderPath, "queryParameter.yaml")))
8271
{
83-
var yamlStream = new YamlStream();
84-
yamlStream.Load(new StreamReader(stream));
85-
var yamlNode = yamlStream.Documents.First().RootNode;
86-
87-
var context = new ParsingContext();
88-
var diagnostic = new OpenApiDiagnostic();
89-
90-
var node = new MapNode(context, diagnostic, (YamlMappingNode)yamlNode);
91-
92-
// Act
93-
var parameter = OpenApiV2Deserializer.LoadParameter(node);
94-
95-
// Assert
96-
parameter.ShouldBeEquivalentTo(
97-
new OpenApiParameter
72+
node = TestHelper.CreateYamlMapNode(stream);
73+
}
74+
// Act
75+
var parameter = OpenApiV2Deserializer.LoadParameter(node);
76+
77+
// Assert
78+
parameter.ShouldBeEquivalentTo(
79+
new OpenApiParameter
80+
{
81+
In = ParameterLocation.Query,
82+
Name = "id",
83+
Description = "ID of the object to fetch",
84+
Required = false,
85+
Schema = new OpenApiSchema
9886
{
99-
In = ParameterLocation.Query,
100-
Name = "id",
101-
Description = "ID of the object to fetch",
102-
Required = false,
103-
Schema = new OpenApiSchema()
87+
Type = "array",
88+
Items = new OpenApiSchema
10489
{
105-
Type = "array",
106-
Items = new OpenApiSchema()
107-
{
108-
Type = "string"
109-
}
110-
},
111-
Style = ParameterStyle.Form,
112-
Explode = true
113-
});
114-
}
90+
Type = "string"
91+
}
92+
},
93+
Style = ParameterStyle.Form,
94+
Explode = true
95+
});
11596
}
11697

11798
[Fact]
11899
public void ParseFormDataParameterShouldSucceed()
119100
{
101+
MapNode node;
102+
// Arrange
120103
using (var stream = File.OpenRead(Path.Combine(SampleFolderPath, "formDataParameter.yaml")))
121104
{
122-
var yamlStream = new YamlStream();
123-
yamlStream.Load(new StreamReader(stream));
124-
var yamlNode = yamlStream.Documents.First().RootNode;
125-
126-
var context = new ParsingContext();
127-
var diagnostic = new OpenApiDiagnostic();
128-
129-
var node = new MapNode(context, diagnostic, (YamlMappingNode)yamlNode);
105+
node = TestHelper.CreateYamlMapNode(stream);
106+
}
130107

131-
// Act
132-
var parameter = OpenApiV2Deserializer.LoadParameter(node);
108+
// Act
109+
var parameter = OpenApiV2Deserializer.LoadParameter(node);
133110

134-
// Assert
135-
// Form data parameter is currently not translated via LoadParameter.
136-
// This design may be revisited and this unit test may likely change.
137-
parameter.ShouldBeEquivalentTo(null);
138-
}
111+
// Assert
112+
// Form data parameter is currently not translated via LoadParameter.
113+
// This design may be revisited and this unit test may likely change.
114+
parameter.ShouldBeEquivalentTo(null);
139115
}
140116

141117
[Fact]
142118
public void ParseHeaderParameterShouldSucceed()
143119
{
120+
MapNode node;
121+
// Arrange
144122
using (var stream = File.OpenRead(Path.Combine(SampleFolderPath, "headerParameter.yaml")))
145123
{
146-
var yamlStream = new YamlStream();
147-
yamlStream.Load(new StreamReader(stream));
148-
var yamlNode = yamlStream.Documents.First().RootNode;
149-
150-
var context = new ParsingContext();
151-
var diagnostic = new OpenApiDiagnostic();
152-
153-
var node = new MapNode(context, diagnostic, (YamlMappingNode)yamlNode);
154-
155-
// Act
156-
var parameter = OpenApiV2Deserializer.LoadParameter(node);
124+
node = TestHelper.CreateYamlMapNode(stream);
125+
}
157126

158-
// Assert
159-
parameter.ShouldBeEquivalentTo(
160-
new OpenApiParameter
127+
// Act
128+
var parameter = OpenApiV2Deserializer.LoadParameter(node);
129+
130+
// Assert
131+
parameter.ShouldBeEquivalentTo(
132+
new OpenApiParameter
133+
{
134+
In = ParameterLocation.Header,
135+
Name = "token",
136+
Description = "token to be passed as a header",
137+
Required = true,
138+
Style = ParameterStyle.Simple,
139+
Schema = new OpenApiSchema
161140
{
162-
In = ParameterLocation.Header,
163-
Name = "token",
164-
Description = "token to be passed as a header",
165-
Required = true,
166-
Style = ParameterStyle.Simple,
167-
Schema = new OpenApiSchema()
141+
Type = "array",
142+
Items = new OpenApiSchema
168143
{
169-
Type = "array",
170-
Items = new OpenApiSchema()
171-
{
172-
Type = "integer",
173-
Format = "int64"
174-
}
144+
Type = "integer",
145+
Format = "int64"
175146
}
176-
});
177-
}
147+
}
148+
});
178149
}
179150
}
180151
}

0 commit comments

Comments
 (0)