1
1
// Copyright (c) Microsoft Corporation. All rights reserved.
2
2
// Licensed under the MIT license.
3
3
4
- using System ;
5
4
using System . IO ;
6
- using System . Linq ;
7
5
using FluentAssertions ;
8
6
using Microsoft . OpenApi . Models ;
9
7
using Microsoft . OpenApi . Readers . ParseNodes ;
10
8
using Microsoft . OpenApi . Readers . V2 ;
11
- using SharpYaml . Serialization ;
12
9
using Xunit ;
13
10
14
11
namespace Microsoft . OpenApi . Readers . Tests . V2Tests
@@ -21,160 +18,134 @@ public class OpenApiParameterTests
21
18
[ Fact ]
22
19
public void ParseBodyParameterShouldSucceed ( )
23
20
{
21
+ MapNode node ;
22
+ // Arrange
24
23
using ( var stream = File . OpenRead ( Path . Combine ( SampleFolderPath , "bodyParameter.yaml" ) ) )
25
24
{
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
+ }
34
27
35
- // Act
36
- var parameter = OpenApiV2Deserializer . LoadParameter ( node ) ;
28
+ // Act
29
+ var parameter = OpenApiV2Deserializer . LoadParameter ( node ) ;
37
30
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 ) ;
43
35
}
44
36
45
37
[ Fact ]
46
38
public void ParsePathParameterShouldSucceed ( )
47
39
{
40
+ MapNode node ;
41
+ // Arrange
48
42
using ( var stream = File . OpenRead ( Path . Combine ( SampleFolderPath , "pathParameter.yaml" ) ) )
49
43
{
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
+ }
61
46
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
65
59
{
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
+ } ) ;
76
63
}
77
64
78
65
[ Fact ]
79
66
public void ParseQueryParameterShouldSucceed ( )
80
67
{
68
+ MapNode node ;
69
+ // Arrange
81
70
using ( var stream = File . OpenRead ( Path . Combine ( SampleFolderPath , "queryParameter.yaml" ) ) )
82
71
{
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
98
86
{
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
104
89
{
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
+ } ) ;
115
96
}
116
97
117
98
[ Fact ]
118
99
public void ParseFormDataParameterShouldSucceed ( )
119
100
{
101
+ MapNode node ;
102
+ // Arrange
120
103
using ( var stream = File . OpenRead ( Path . Combine ( SampleFolderPath , "formDataParameter.yaml" ) ) )
121
104
{
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
+ }
130
107
131
- // Act
132
- var parameter = OpenApiV2Deserializer . LoadParameter ( node ) ;
108
+ // Act
109
+ var parameter = OpenApiV2Deserializer . LoadParameter ( node ) ;
133
110
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 ) ;
139
115
}
140
116
141
117
[ Fact ]
142
118
public void ParseHeaderParameterShouldSucceed ( )
143
119
{
120
+ MapNode node ;
121
+ // Arrange
144
122
using ( var stream = File . OpenRead ( Path . Combine ( SampleFolderPath , "headerParameter.yaml" ) ) )
145
123
{
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
+ }
157
126
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
161
140
{
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
168
143
{
169
- Type = "array" ,
170
- Items = new OpenApiSchema ( )
171
- {
172
- Type = "integer" ,
173
- Format = "int64"
174
- }
144
+ Type = "integer" ,
145
+ Format = "int64"
175
146
}
176
- } ) ;
177
- }
147
+ }
148
+ } ) ;
178
149
}
179
150
}
180
151
}
0 commit comments