Skip to content
This repository was archived by the owner on Feb 23, 2024. It is now read-only.

Commit 9aaf7ce

Browse files
authored
Merge pull request #172 from Azure/lucashh-additional-entities
Lucashh additional entities
2 parents 82f50e2 + c3b02f2 commit 9aaf7ce

File tree

82 files changed

+4036
-1777
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+4036
-1777
lines changed

src/APIM_ARMTemplate/apimtemplate.test/CmdLine/CreateTests.cs

Lines changed: 70 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,20 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Test
88
{
99
public class CreateTests
1010
{
11-
12-
private string configExamplesFolder;
11+
private string invalidConfigurationFolder;
1312

1413
public CreateTests()
1514
{
16-
this.configExamplesFolder = String.Concat("..", Path.DirectorySeparatorChar,
17-
"..", Path.DirectorySeparatorChar,
15+
this.invalidConfigurationFolder = String.Concat("..", Path.DirectorySeparatorChar,
16+
"..", Path.DirectorySeparatorChar,
1817
"..", Path.DirectorySeparatorChar,
1918
"..", Path.DirectorySeparatorChar,
20-
"apimtemplate", Path.DirectorySeparatorChar,
21-
"Creator", Path.DirectorySeparatorChar,
22-
"ExampleFiles", Path.DirectorySeparatorChar,
23-
"YAMLConfigs", Path.DirectorySeparatorChar);
19+
"apimtemplate.test", Path.DirectorySeparatorChar,
20+
"CmdLine", Path.DirectorySeparatorChar,
21+
"InvalidConfigurations", Path.DirectorySeparatorChar);
2422
}
2523

24+
#region Unknown
2625
[Fact]
2726
public void ShouldFailWithUnknownCommand()
2827
{
@@ -35,16 +34,18 @@ public void ShouldFailWithUnknownCommand()
3534
public void ShouldFailWithUnknownOption()
3635
{
3736
var createCommand = new CreateCommand();
38-
string[] args = new string[] { "--configurationFile", String.Concat(this.configExamplesFolder, "valid.yml") };
37+
string[] args = new string[] { "--configurationFile", String.Concat(this.invalidConfigurationFolder, "invalidVersionSetDisplayName.yml") };
3938
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
4039
Assert.Contains("Unrecognized option '--configurationFile'", ex.Message);
4140
}
41+
#endregion
4242

43+
#region BaseProperties
4344
[Fact]
4445
public void ShouldFailWithInvalidOutputLocation()
4546
{
4647
var createCommand = new CreateCommand();
47-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidOutputLocation.yml") };
48+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidOutputLocation.yml") };
4849
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
4950
Assert.Contains("Output location is required", ex.Message);
5051
}
@@ -53,7 +54,7 @@ public void ShouldFailWithInvalidOutputLocation()
5354
public void ShouldFailWithInvalidVersion()
5455
{
5556
var createCommand = new CreateCommand();
56-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidVersion.yml") };
57+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidVersion.yml") };
5758
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
5859
Assert.Contains("Version is required", ex.Message);
5960
}
@@ -62,16 +63,27 @@ public void ShouldFailWithInvalidVersion()
6263
public void ShouldFailWithInvalidAPIMServiceName()
6364
{
6465
var createCommand = new CreateCommand();
65-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidAPIMServiceName.yml") };
66+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidAPIMServiceName.yml") };
6667
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
6768
Assert.Contains("APIM service name is required", ex.Message);
6869
}
6970

71+
[Fact]
72+
public void ShouldFailWithInvalidLinking()
73+
{
74+
var createCommand = new CreateCommand();
75+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidLinking.yml") };
76+
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
77+
Assert.Contains("LinkTemplatesBaseUrl is required for linked templates", ex.Message);
78+
}
79+
#endregion
80+
81+
#region API
7082
[Fact]
7183
public void ShouldFailWithInvalidAPIConfiguration()
7284
{
7385
var createCommand = new CreateCommand();
74-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidAPI.yml") };
86+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidAPI.yml") };
7587
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
7688
Assert.Contains("API configuration is required", ex.Message);
7789
}
@@ -80,7 +92,7 @@ public void ShouldFailWithInvalidAPIConfiguration()
8092
public void ShouldFailWithInvalidOpenAPISpec()
8193
{
8294
var createCommand = new CreateCommand();
83-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidOpenAPISpec.yml") };
95+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidOpenAPISpec.yml") };
8496
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
8597
Assert.Contains("Open API Spec is required", ex.Message);
8698
}
@@ -89,7 +101,7 @@ public void ShouldFailWithInvalidOpenAPISpec()
89101
public void ShouldFailWithInvalidSuffix()
90102
{
91103
var createCommand = new CreateCommand();
92-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidSuffix.yml") };
104+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidSuffix.yml") };
93105
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
94106
Assert.Contains("API suffix is required", ex.Message);
95107
}
@@ -98,54 +110,83 @@ public void ShouldFailWithInvalidSuffix()
98110
public void ShouldFailWithInvalidAPIName()
99111
{
100112
var createCommand = new CreateCommand();
101-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidAPIName.yml") };
113+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidAPIName.yml") };
102114
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
103115
Assert.Contains("API name is required", ex.Message);
104116
}
105117

106118
[Fact]
107-
public void ShouldFailWithInvalidLinking()
119+
public void ShouldFailWithInvalidOperationPolicy()
108120
{
109121
var createCommand = new CreateCommand();
110-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidLinking.yml") };
122+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidOperationPolicy.yml") };
111123
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
112-
Assert.Contains("LinkTemplatesBaseUrl is required for linked templates", ex.Message);
124+
Assert.Contains("Policy XML is required if an API operation is provided", ex.Message);
125+
}
126+
127+
[Fact]
128+
public void ShouldFailWithInvalidDiagnosticLoggerId()
129+
{
130+
var createCommand = new CreateCommand();
131+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidDiagnosticLoggerId.yml") };
132+
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
133+
Assert.Contains("LoggerId is required if an API diagnostic is provided", ex.Message);
113134
}
135+
#endregion
114136

137+
#region APIVersionSet
115138
[Fact]
116139
public void ShouldFailWithInvalidVersionSetDisplayName()
117140
{
118141
var createCommand = new CreateCommand();
119-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidVersionSetDisplayName.yml") };
142+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidVersionSetDisplayName.yml") };
120143
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
121144
Assert.Contains("Display name is required if an API Version Set is provided", ex.Message);
122145
}
146+
#endregion
123147

148+
#region Product
124149
[Fact]
125-
public void ShouldFailWithInvalidVersionSetVersioningScheme()
150+
public void ShouldFailWithInvalidProductDisplayName()
126151
{
127152
var createCommand = new CreateCommand();
128-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidVersionSetVersioningScheme.yml") };
153+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidProductDisplayName.yml") };
129154
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
130-
Assert.Contains("Versioning scheme is required if an API Version Set is provided", ex.Message);
155+
Assert.Contains("Display name is required if an Product is provided", ex.Message);
131156
}
157+
#endregion
132158

159+
#region Logger
133160
[Fact]
134-
public void ShouldFailWithInvalidOperationPolicy()
161+
public void ShouldFailWithInvalidLoggerDisplayName()
135162
{
136163
var createCommand = new CreateCommand();
137-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidOperationPolicy.yml") };
164+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidLoggerName.yml") };
138165
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
139-
Assert.Contains("Policy XML is required if an API operation is provided", ex.Message);
166+
Assert.Contains("Name is required if an Logger is provided", ex.Message);
140167
}
168+
#endregion
141169

170+
#region Backend
142171
[Fact]
143-
public void ShouldFailWithInvalidDiagnosticLoggerId()
172+
public void ShouldFailWithInvalidBackendDisplayName()
144173
{
145174
var createCommand = new CreateCommand();
146-
string[] args = new string[] { "--configFile", String.Concat(this.configExamplesFolder, "invalidDiagnosticLoggerId.yml") };
175+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidBackendTitle.yml") };
147176
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
148-
Assert.Contains("LoggerId is required if an API diagnostic is provided", ex.Message);
177+
Assert.Contains("Title is required if a Backend is provided", ex.Message);
178+
}
179+
#endregion
180+
181+
#region AuthorizationServer
182+
[Fact]
183+
public void ShouldFailWithInvalidAuthorizationServerDisplayName()
184+
{
185+
var createCommand = new CreateCommand();
186+
string[] args = new string[] { "--configFile", String.Concat(this.invalidConfigurationFolder, "invalidAuthorizationServerDisplayName.yml") };
187+
var ex = Assert.ThrowsAny<CommandParsingException>(() => createCommand.Execute(args));
188+
Assert.Contains("Display name is required if an Authorization Server is provided", ex.Message);
149189
}
190+
#endregion
150191
}
151192
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
version: 0.0.1
2+
apimServiceName: myAPIMService
3+
apiVersionSets:
4+
- id: myAPIVersionSetID
5+
displayName: swaggerPetstoreVersionSetLinked
6+
description: a description
7+
versioningScheme: Query
8+
versionQueryName: versionQuery
9+
versionHeaderName: versionHeader
10+
- id: secondAPIVersionSetID
11+
displayName: secondSet
12+
description: another description
13+
versioningScheme: Header
14+
versionQueryName: versionQuery
15+
versionHeaderName: versionHeader
16+
products:
17+
- displayName: platinum
18+
description: a test product
19+
terms: some terms
20+
subscriptionRequired: true
21+
approvalRequired: true
22+
subscriptionsLimit: 1
23+
state: notPublished
24+
loggers:
25+
- name: myAppInsights
26+
loggerType: applicationInsights
27+
description: a test app insights
28+
credentials:
29+
instrumentationKey: 45d4v88-fdfs-4b35-9232-731d82d4d1c6
30+
isBuffered: true
31+
authorizationServers:
32+
- displayName: myAuthServer
33+
description: test server
34+
clientRegistrationEndpoint: https://www.contoso.com/apps
35+
authorizationEndpoint: https://www.contoso.com/oauth2/auth
36+
authorizationMethods:
37+
- GET
38+
tokenEndpoint: https://www.contoso.com/oauth2/token
39+
supportState: true
40+
defaultScope: read write
41+
grantTypes:
42+
- authorizationCode
43+
- implicit
44+
bearerTokenSendingMethods:
45+
- authorizationHeader
46+
clientId: 1
47+
clientSecret: 2
48+
resourceOwnerUsername: un
49+
resourceOwnerPassword: pwd
50+
backends:
51+
- title: myBackend
52+
description: description5308
53+
url: https://backendname2644/
54+
protocol: http
55+
credentials:
56+
query:
57+
sv:
58+
- xx
59+
- bb
60+
header:
61+
x-my-1:
62+
- val1
63+
- val2
64+
authorization:
65+
scheme: Basic
66+
parameter: opensesma
67+
proxy:
68+
url: http://192.168.1.1:8080
69+
username: Contoso\admin
70+
password: opensesame
71+
tls:
72+
validateCertificateChain: false
73+
validateCertificateName: false
74+
outputLocation: C:\Users\myUsername\GeneratedTemplates
75+
linked: false
76+
linkedTemplatesBaseUrl : https://mystorageaccount.blob.core.windows.net/mycontainer

0 commit comments

Comments
 (0)