Skip to content

Commit f4c7296

Browse files
authored
Merge pull request #358 from markcowl/fixEnv
Fix add-environment ARMEndpoint functionality
2 parents 8aa35e8 + 94afd12 commit f4c7296

File tree

3 files changed

+206
-80
lines changed

3 files changed

+206
-80
lines changed

src/ResourceManager/Profile/Commands.Profile.Test/EnvironmentCmdletTests.cs

Lines changed: 70 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,18 @@ public void AddsAzureEnvironment()
6161
{
6262
CommandRuntime = commandRuntimeMock.Object,
6363
Name = "Katal",
64-
PublishSettingsFileUrl = "http://microsoft.com",
65-
ServiceEndpoint = "https://endpoint.net",
66-
ManagementPortalUrl = "http://management.portal.url",
67-
StorageEndpoint = "http://endpoint.net",
68-
GalleryEndpoint = "http://galleryendpoint.com",
6964
};
65+
var dict =new Dictionary<string, object>
66+
{
67+
{ "PublishSettingsFileUrl", "http://microsoft.com" },
68+
{ "ServiceEndpoint", "https://endpoint.net" },
69+
{ "ManagementPortalUrl", "http://management.portal.url" },
70+
{ "StorageEndpoint", "http://endpoint.net" },
71+
{ "GalleryEndpoint", "http://galleryendpoint.com" },
72+
73+
};
74+
75+
cmdlet.SetBoundParameters(dict);
7076
cmdlet.InvokeBeginProcessing();
7177
cmdlet.ExecuteCmdlet();
7278
cmdlet.InvokeEndProcessing();
@@ -75,9 +81,9 @@ public void AddsAzureEnvironment()
7581
var profileClient = new RMProfileClient(AzureRmProfileProvider.Instance.GetProfile<AzureRmProfile>());
7682
IAzureEnvironment env = AzureRmProfileProvider.Instance.Profile.Environments.First((e) => string.Equals(e.Name, "KaTaL", StringComparison.OrdinalIgnoreCase));
7783
Assert.Equal(env.Name, cmdlet.Name);
78-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.PublishSettingsFileUrl), cmdlet.PublishSettingsFileUrl);
79-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ServiceManagement), cmdlet.ServiceEndpoint);
80-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ManagementPortalUrl), cmdlet.ManagementPortalUrl);
84+
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.PublishSettingsFileUrl), dict["PublishSettingsFileUrl"]);
85+
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ServiceManagement), dict["ServiceEndpoint"]);
86+
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ManagementPortalUrl), dict["ManagementPortalUrl"]);
8187
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.Gallery), "http://galleryendpoint.com");
8288
}
8389

@@ -106,10 +112,11 @@ public void AddsAzureEnvironmentUsingAPublicRMEndpoint()
106112

107113
commandRuntimeMock.Verify(f => f.WriteObject(It.IsAny<PSAzureEnvironment>()), Times.Once());
108114
IAzureEnvironment env = AzureRmProfileProvider.Instance.Profile.GetEnvironment("Katal");
115+
var oracle = AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud];
109116
Assert.Equal(env.Name, cmdlet.Name);
110-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ResourceManager), cmdlet.ResourceManagerEndpoint);
111-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectory), cmdlet.ActiveDirectoryEndpoint);
112-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId), cmdlet.ActiveDirectoryServiceEndpointResourceId);
117+
Assert.Equal(oracle.ResourceManagerUrl, env.GetEndpoint(AzureEnvironment.Endpoint.ResourceManager));
118+
Assert.Equal(oracle.ActiveDirectoryAuthority, env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectory));
119+
Assert.Equal(oracle.ActiveDirectoryServiceEndpointResourceId, env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId));
113120
envHelperMock.Verify(f => f.RetrieveDomain(It.IsAny<string>()), Times.Never);
114121
envHelperMock.Verify(f => f.RetrieveMetaDataEndpoints(It.IsAny<string>()), Times.Never);
115122
}
@@ -151,10 +158,10 @@ public void AddsAzureEnvironmentUsingARMEndpoint()
151158
var profileClient = new RMProfileClient(AzureRmProfileProvider.Instance.GetProfile<AzureRmProfile>());
152159
IAzureEnvironment env = AzureRmProfileProvider.Instance.Profile.GetEnvironment("Stack");
153160
Assert.Equal(env.Name, cmdlet.Name);
154-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ResourceManager), cmdlet.ResourceManagerEndpoint);
155-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectory), cmdlet.ActiveDirectoryEndpoint);
156-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId), cmdlet.ActiveDirectoryServiceEndpointResourceId);
157-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.GraphEndpointResourceId), "https://graphendpoint");
161+
Assert.Equal(cmdlet.ARMEndpoint, env.GetEndpoint(AzureEnvironment.Endpoint.ResourceManager));
162+
Assert.Equal("https://loginendpoint/", env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectory));
163+
Assert.Equal("audience1", env.GetEndpoint(AzureEnvironment.Endpoint.ActiveDirectoryServiceEndpointResourceId));
164+
Assert.Equal("https://graphendpoint", env.GetEndpoint(AzureEnvironment.Endpoint.GraphEndpointResourceId));
158165
envHelperMock.Verify(f => f.RetrieveDomain(It.IsAny<string>()), Times.Once);
159166
envHelperMock.Verify(f => f.RetrieveMetaDataEndpoints(It.IsAny<string>()), Times.Once);
160167
}
@@ -173,6 +180,11 @@ public void AddsEnvironmentMultipleTimes()
173180
EnableAdfsAuthentication = true,
174181
};
175182

183+
var dict = new Dictionary<string, object>();
184+
dict["PublishSettingsFileUrl"] = "http://microsoft.com";
185+
dict["EnableAdfsAuthentication"] = true;
186+
cmdlet.SetBoundParameters(dict);
187+
176188
cmdlet.InvokeBeginProcessing();
177189
cmdlet.ExecuteCmdlet();
178190
cmdlet.InvokeEndProcessing();
@@ -191,6 +203,10 @@ public void AddsEnvironmentMultipleTimes()
191203
EnableAdfsAuthentication = true,
192204
};
193205

206+
dict.Clear();
207+
dict["EnableAdfsAuthentication"] = true;
208+
cmdlet2.SetBoundParameters(dict);
209+
194210
cmdlet2.InvokeBeginProcessing();
195211
cmdlet2.ExecuteCmdlet();
196212
cmdlet2.InvokeEndProcessing();
@@ -206,6 +222,8 @@ public void AddsEnvironmentMultipleTimes()
206222
CommandRuntime = commandRuntimeMock.Object,
207223
Name = "Katal",
208224
};
225+
dict.Clear();
226+
cmdlet3.SetBoundParameters(dict);
209227

210228
cmdlet3.InvokeBeginProcessing();
211229
cmdlet3.ExecuteCmdlet();
@@ -227,10 +245,13 @@ public void AddsEnvironmentWithMinimumInformation()
227245
{
228246
CommandRuntime = commandRuntimeMock.Object,
229247
Name = "Katal",
230-
PublishSettingsFileUrl = "http://microsoft.com",
231-
EnableAdfsAuthentication = true,
248+
EnableAdfsAuthentication = true
232249
};
233250

251+
var dict = new Dictionary<string, object>();
252+
dict["EnableAdfsAuthentication"] = true;
253+
dict["PublishSettingsFileUrl"] = "http://microsoft.com";
254+
cmdlet.SetBoundParameters(dict);
234255
cmdlet.InvokeBeginProcessing();
235256
cmdlet.ExecuteCmdlet();
236257
cmdlet.InvokeEndProcessing();
@@ -239,7 +260,7 @@ public void AddsEnvironmentWithMinimumInformation()
239260
IAzureEnvironment env = AzureRmProfileProvider.Instance.Profile.GetEnvironment("KaTaL");
240261
Assert.Equal(env.Name, cmdlet.Name);
241262
Assert.True(env.OnPremise);
242-
Assert.Equal(env.GetEndpoint(AzureEnvironment.Endpoint.PublishSettingsFileUrl), cmdlet.PublishSettingsFileUrl);
263+
Assert.Equal("http://microsoft.com", env.GetEndpoint(AzureEnvironment.Endpoint.PublishSettingsFileUrl));
243264
}
244265
#if !NETSTANDARD
245266
[Fact]
@@ -258,6 +279,13 @@ public void IgnoresAddingDuplicatedEnvironment()
258279
ManagementPortalUrl = "https://management.portal.url",
259280
StorageEndpoint = "http://endpoint.net"
260281
};
282+
283+
var dict = new Dictionary<string, object>();
284+
dict["PublishSettingsFileUrl"] = "http://microsoft.com";
285+
dict["ServiceEndpoint"] = "http://endpoint.net";
286+
dict["ManagementPortalUrl"] = "https://management.portal.url";
287+
dict["StorageEndpoint"] = "http://endpoint.net";
288+
cmdlet.SetBoundParameters(dict);
261289
cmdlet.InvokeBeginProcessing();
262290
cmdlet.ExecuteCmdlet();
263291
cmdlet.InvokeEndProcessing();
@@ -268,7 +296,7 @@ public void IgnoresAddingDuplicatedEnvironment()
268296
cmdlet.Name = "kAtAl";
269297
cmdlet.ExecuteCmdlet();
270298
IAzureEnvironment env = AzureRmProfileProvider.Instance.Profile.GetEnvironment("KaTaL");
271-
Assert.Equal(env.Name, cmdlet.Name);
299+
Assert.Equal("Katal", env.Name);
272300
}
273301
#endif
274302
[Fact]
@@ -345,13 +373,32 @@ public void CanCreateEnvironmentWithAllProperties()
345373
GraphAudience = "GaraphAudience"
346374
};
347375

376+
var dict = new Dictionary<string, object>();
377+
dict["ActiveDirectoryEndpoint"] = "https://ActiveDirectoryEndpoint";
378+
dict["AdTenant"] = "AdTenant";
379+
dict["AzureKeyVaultDnsSuffix"] = "AzureKeyVaultDnsSuffix";
380+
dict["ActiveDirectoryServiceEndpointResourceId"] = "https://ActiveDirectoryServiceEndpointResourceId";
381+
dict["AzureKeyVaultServiceEndpointResourceId"] = "https://AzureKeyVaultServiceEndpointResourceId";
382+
dict["EnableAdfsAuthentication"] = true;
383+
dict["GalleryEndpoint"] = "https://GalleryEndpoint";
384+
dict["GraphEndpoint"] = "https://GraphEndpoint";
385+
dict["ManagementPortalUrl"] = "https://ManagementPortalUrl";
386+
dict["PublishSettingsFileUrl"] = "https://PublishSettingsFileUrl";
387+
dict["ResourceManagerEndpoint"] = "https://ResourceManagerEndpoint";
388+
dict["ServiceEndpoint"] = "https://ServiceEndpoint";
389+
dict["StorageEndpoint"] = "https://StorageEndpoint";
390+
dict["SqlDatabaseDnsSuffix"] = "SqlDatabaseDnsSuffix";
391+
dict["TrafficManagerDnsSuffix"] = "TrafficManagerDnsSuffix";
392+
dict["GraphAudience"] = "GaraphAudience";
393+
cmdlet.SetBoundParameters(dict);
394+
348395
cmdlet.InvokeBeginProcessing();
349396
cmdlet.ExecuteCmdlet();
350397
cmdlet.InvokeEndProcessing();
351398
Assert.Equal(cmdlet.Name, actual.Name);
352399
Assert.Equal(cmdlet.EnableAdfsAuthentication.ToBool(), actual.EnableAdfsAuthentication);
353400
Assert.Equal(cmdlet.ActiveDirectoryEndpoint + "/", actual.ActiveDirectoryAuthority, StringComparer.OrdinalIgnoreCase);
354-
Assert.Equal(cmdlet.ActiveDirectoryServiceEndpointResourceId,
401+
Assert.Equal(cmdlet.ActiveDirectoryServiceEndpointResourceId + "/",
355402
actual.ActiveDirectoryServiceEndpointResourceId);
356403
Assert.Equal(cmdlet.AdTenant, actual.AdTenant);
357404
Assert.Equal(cmdlet.AzureKeyVaultDnsSuffix, actual.AzureKeyVaultDnsSuffix);
@@ -408,6 +455,9 @@ public void CreateEnvironmentWithTrailingSlashInActiveDirectory()
408455
ActiveDirectoryEndpoint = "https://ActiveDirectoryEndpoint/"
409456
};
410457

458+
var dict = new Dictionary<string, object>();
459+
dict["ActiveDirectoryEndpoint"] = "https://ActiveDirectoryEndpoint/";
460+
cmdlet.SetBoundParameters(dict);
411461
SetupConfirmation(commandRuntimeMock);
412462
cmdlet.InvokeBeginProcessing();
413463
cmdlet.ExecuteCmdlet();

0 commit comments

Comments
 (0)