1
- using Microsoft . OpenApi . Models ;
2
- using Xunit ;
1
+ using Xunit ;
3
2
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Common ;
4
3
using Microsoft . Azure . Management . ApiManagement . ArmTemplates . Create ;
5
4
using System . Collections . Generic ;
5
+ using System . Linq ;
6
6
7
7
namespace Microsoft . Azure . Management . ApiManagement . ArmTemplates . Test
8
8
{
9
9
public class APITemplateCreatorTests
10
10
{
11
11
[ Fact ]
12
- public async void ShouldCreateInitialAPITemplateResourceFromCreatorConfig ( )
12
+ public void ShouldCreateInitialAPITemplateResourceFromCreatorConfig ( )
13
13
{
14
14
// arrange
15
15
APITemplateCreator apiTemplateCreator = APITemplateCreatorFactory . GenerateAPITemplateCreator ( ) ;
@@ -20,8 +20,8 @@ public async void ShouldCreateInitialAPITemplateResourceFromCreatorConfig()
20
20
apiVersion = "apiVersion" ,
21
21
apiVersionDescription = "apiVersionDescription" ,
22
22
apiVersionSetId = "apiVersionSetId" ,
23
- revision = "revision" ,
24
- revisionDescription = "revisionDescription" ,
23
+ apiRevision = "revision" ,
24
+ apiRevisionDescription = "revisionDescription" ,
25
25
suffix = "suffix" ,
26
26
subscriptionRequired = true ,
27
27
authenticationSettings = new APITemplateAuthenticationSettings ( )
@@ -38,21 +38,28 @@ public async void ShouldCreateInitialAPITemplateResourceFromCreatorConfig()
38
38
} ,
39
39
subscriptionKeyRequired = true
40
40
} ,
41
- openApiSpec = "https://petstore.swagger.io/v2/swagger.json"
41
+ openApiSpec = "https://petstore.swagger.io/v2/swagger.json" ,
42
+ protocols = "https" ,
43
+ isCurrent = true ,
44
+ type = "http"
42
45
} ;
43
46
creatorConfig . apis . Add ( api ) ;
44
47
45
48
// act
46
- APITemplateResource apiTemplateResource = await apiTemplateCreator . CreateAPITemplateResourceAsync ( api , true , true ) ;
49
+ APITemplateResource apiTemplateResource = apiTemplateCreator . CreateAPITemplateResource ( api , true , true ) ;
47
50
48
51
// assert
49
52
Assert . Equal ( $ "[concat(parameters('ApimServiceName'), '/{ api . name } ')]", apiTemplateResource . name ) ;
50
53
Assert . Equal ( api . name , apiTemplateResource . properties . displayName ) ;
51
54
Assert . Equal ( api . apiVersion , apiTemplateResource . properties . apiVersion ) ;
52
55
Assert . Equal ( api . apiVersionDescription , apiTemplateResource . properties . apiVersionDescription ) ;
56
+ Assert . Equal ( api . type , apiTemplateResource . properties . type ) ;
57
+ Assert . Equal ( api . type , apiTemplateResource . properties . apiType ) ;
58
+ Assert . Equal ( api . isCurrent , apiTemplateResource . properties . isCurrent ) ;
59
+ Assert . Equal ( new string [ ] { api . protocols } , apiTemplateResource . properties . protocols ) ;
53
60
Assert . Equal ( $ "[resourceId('Microsoft.ApiManagement/service/apiVersionSets', parameters('ApimServiceName'), '{ api . apiVersionSetId } ')]", apiTemplateResource . properties . apiVersionSetId ) ;
54
- Assert . Equal ( api . revision , apiTemplateResource . properties . apiRevision ) ;
55
- Assert . Equal ( api . revisionDescription , apiTemplateResource . properties . apiRevisionDescription ) ;
61
+ Assert . Equal ( api . apiRevision , apiTemplateResource . properties . apiRevision ) ;
62
+ Assert . Equal ( api . apiRevisionDescription , apiTemplateResource . properties . apiRevisionDescription ) ;
56
63
Assert . Equal ( api . suffix , apiTemplateResource . properties . path ) ;
57
64
Assert . Equal ( api . subscriptionRequired , apiTemplateResource . properties . subscriptionRequired ) ;
58
65
Assert . Equal ( api . authenticationSettings . oAuth2 . authorizationServerId , apiTemplateResource . properties . authenticationSettings . oAuth2 . authorizationServerId ) ;
@@ -63,7 +70,7 @@ public async void ShouldCreateInitialAPITemplateResourceFromCreatorConfig()
63
70
}
64
71
65
72
[ Fact ]
66
- public async void ShouldCreateSubsequentlAPITemplateResourceFromCreatorConfigWithCorrectContent ( )
73
+ public void ShouldCreateSubsequentlAPITemplateResourceFromCreatorConfigWithCorrectContent ( )
67
74
{
68
75
// arrange
69
76
APITemplateCreator apiTemplateCreator = APITemplateCreatorFactory . GenerateAPITemplateCreator ( ) ;
@@ -76,7 +83,7 @@ public async void ShouldCreateSubsequentlAPITemplateResourceFromCreatorConfigWit
76
83
creatorConfig . apis . Add ( api ) ;
77
84
78
85
// act
79
- APITemplateResource apiTemplateResource = await apiTemplateCreator . CreateAPITemplateResourceAsync ( api , true , false ) ;
86
+ APITemplateResource apiTemplateResource = apiTemplateCreator . CreateAPITemplateResource ( api , true , false ) ;
80
87
81
88
// assert
82
89
Assert . Equal ( $ "[concat(parameters('ApimServiceName'), '/{ api . name } ')]", apiTemplateResource . name ) ;
@@ -85,7 +92,7 @@ public async void ShouldCreateSubsequentlAPITemplateResourceFromCreatorConfigWit
85
92
}
86
93
87
94
[ Fact ]
88
- public async void ShouldCreateUnifiedAPITemplateResourceFromCreatorConfig ( )
95
+ public void ShouldCreateUnifiedAPITemplateResourceFromCreatorConfig ( )
89
96
{
90
97
// arrange
91
98
APITemplateCreator apiTemplateCreator = APITemplateCreatorFactory . GenerateAPITemplateCreator ( ) ;
@@ -96,8 +103,8 @@ public async void ShouldCreateUnifiedAPITemplateResourceFromCreatorConfig()
96
103
apiVersion = "apiVersion" ,
97
104
apiVersionDescription = "apiVersionDescription" ,
98
105
apiVersionSetId = "apiVersionSetId" ,
99
- revision = "revision" ,
100
- revisionDescription = "revisionDescription" ,
106
+ apiRevision = "revision" ,
107
+ apiRevisionDescription = "revisionDescription" ,
101
108
suffix = "suffix" ,
102
109
subscriptionRequired = true ,
103
110
authenticationSettings = new APITemplateAuthenticationSettings ( )
@@ -115,20 +122,27 @@ public async void ShouldCreateUnifiedAPITemplateResourceFromCreatorConfig()
115
122
subscriptionKeyRequired = true
116
123
} ,
117
124
openApiSpec = "https://petstore.swagger.io/v2/swagger.json" ,
125
+ protocols = "https" ,
126
+ isCurrent = true ,
127
+ type = "http"
118
128
} ;
119
129
creatorConfig . apis . Add ( api ) ;
120
130
121
131
// act
122
- APITemplateResource apiTemplateResource = await apiTemplateCreator . CreateAPITemplateResourceAsync ( api , false , true ) ;
132
+ APITemplateResource apiTemplateResource = apiTemplateCreator . CreateAPITemplateResource ( api , false , true ) ;
123
133
124
134
// assert
125
135
Assert . Equal ( $ "[concat(parameters('ApimServiceName'), '/{ api . name } ')]", apiTemplateResource . name ) ;
126
136
Assert . Equal ( api . name , apiTemplateResource . properties . displayName ) ;
127
137
Assert . Equal ( api . apiVersion , apiTemplateResource . properties . apiVersion ) ;
138
+ Assert . Equal ( api . type , apiTemplateResource . properties . type ) ;
139
+ Assert . Equal ( api . type , apiTemplateResource . properties . apiType ) ;
140
+ Assert . Equal ( api . isCurrent , apiTemplateResource . properties . isCurrent ) ;
141
+ Assert . Equal ( new string [ ] { api . protocols } , apiTemplateResource . properties . protocols ) ;
128
142
Assert . Equal ( api . apiVersionDescription , apiTemplateResource . properties . apiVersionDescription ) ;
129
143
Assert . Equal ( $ "[resourceId('Microsoft.ApiManagement/service/apiVersionSets', parameters('ApimServiceName'), '{ api . apiVersionSetId } ')]", apiTemplateResource . properties . apiVersionSetId ) ;
130
- Assert . Equal ( api . revision , apiTemplateResource . properties . apiRevision ) ;
131
- Assert . Equal ( api . revisionDescription , apiTemplateResource . properties . apiRevisionDescription ) ;
144
+ Assert . Equal ( api . apiRevision , apiTemplateResource . properties . apiRevision ) ;
145
+ Assert . Equal ( api . apiRevisionDescription , apiTemplateResource . properties . apiRevisionDescription ) ;
132
146
Assert . Equal ( api . suffix , apiTemplateResource . properties . path ) ;
133
147
Assert . Equal ( api . subscriptionRequired , apiTemplateResource . properties . subscriptionRequired ) ;
134
148
Assert . Equal ( api . authenticationSettings . oAuth2 . authorizationServerId , apiTemplateResource . properties . authenticationSettings . oAuth2 . authorizationServerId ) ;
@@ -139,29 +153,32 @@ public async void ShouldCreateUnifiedAPITemplateResourceFromCreatorConfig()
139
153
Assert . Equal ( "swagger-link-json" , apiTemplateResource . properties . format ) ;
140
154
Assert . Equal ( api . openApiSpec , apiTemplateResource . properties . value ) ;
141
155
}
142
- /*
156
+
143
157
[ Fact ]
144
- public void ShouldCreateProtocolsFromOpenApiDocument ()
158
+ public void ShouldAppendRevisionToAPIName ( )
145
159
{
146
160
// arrange
147
161
APITemplateCreator apiTemplateCreator = APITemplateCreatorFactory . GenerateAPITemplateCreator ( ) ;
148
- OpenApiDocument openApiDocument = new OpenApiDocument();
149
- int count = 2;
150
- for (int i = 0; i < count; i++)
162
+ CreatorConfig creatorConfig = new CreatorConfig ( ) { apis = new List < APIConfig > ( ) } ;
163
+ APIConfig api = new APIConfig ( )
151
164
{
152
- openApiDocument.Servers.Add(new OpenApiServer()
153
- {
154
- Url = $"{i}:{i}"
155
- });
156
- }
165
+ name = "name" ,
166
+ apiRevision = "2" ,
167
+ isCurrent = true ,
168
+ suffix = "suffix" ,
169
+ subscriptionRequired = true ,
170
+ openApiSpec = "https://petstore.swagger.io/v2/swagger.json" ,
171
+ } ;
172
+ creatorConfig . apis . Add ( api ) ;
157
173
158
174
// act
159
- string[] protocols = apiTemplateCreator.CreateProtocols(openApiDocument);
175
+ // the above api config will create a unified api template with a single resource
176
+ List < Template > apiTemplates = apiTemplateCreator . CreateAPITemplates ( api ) ;
177
+ APITemplateResource apiTemplateResource = apiTemplates . FirstOrDefault ( ) . resources [ 0 ] as APITemplateResource ;
160
178
161
179
// assert
162
- Assert.Equal(count, protocols.Length );
180
+ Assert . Contains ( ";rev" , apiTemplateResource . name ) ;
163
181
}
164
- */
165
182
}
166
183
167
184
}
0 commit comments