1
2 package azure
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 import (
19 "encoding/json"
20 "io/ioutil"
21 "net/http"
22 "net/http/httptest"
23 "os"
24 "path"
25 "path/filepath"
26 "runtime"
27 "testing"
28 )
29
30 const (
31 batchResourceID = "--batch-resource-id--"
32 datalakeResourceID = "--datalake-resource-id--"
33 graphResourceID = "--graph-resource-id--"
34 keyvaultResourceID = "--keyvault-resource-id--"
35 opInsightsResourceID = "--operational-insights-resource-id--"
36 ossRDBMSResourceID = "--oss-rdbms-resource-id--"
37 cosmosDBResourceID = "--cosmosdb-resource-id--"
38 managedHSMResourceID = "--managed-hsm-resource-id--"
39 )
40
41
42 var testEnvironment1 = Environment{
43 Name: "--unit-test--",
44 ManagementPortalURL: "--management-portal-url",
45 PublishSettingsURL: "--publish-settings-url--",
46 ServiceManagementEndpoint: "--service-management-endpoint--",
47 ResourceManagerEndpoint: "--resource-management-endpoint--",
48 ActiveDirectoryEndpoint: "--active-directory-endpoint--",
49 GalleryEndpoint: "--gallery-endpoint--",
50 KeyVaultEndpoint: "--key-vault--endpoint--",
51 ManagedHSMEndpoint: "--managed-hsm-endpoint--",
52 GraphEndpoint: "--graph-endpoint--",
53 StorageEndpointSuffix: "--storage-endpoint-suffix--",
54 CosmosDBDNSSuffix: "--cosmos-db-dns-suffix--",
55 MariaDBDNSSuffix: "--maria-db-dns-suffix--",
56 MySQLDatabaseDNSSuffix: "--mysql-database-dns-suffix--",
57 PostgresqlDatabaseDNSSuffix: "--postgresql-database-dns-suffix--",
58 SQLDatabaseDNSSuffix: "--sql-database-dns-suffix--",
59 TrafficManagerDNSSuffix: "--traffic-manager-dns-suffix--",
60 KeyVaultDNSSuffix: "--key-vault-dns-suffix--",
61 ManagedHSMDNSSuffix: "--managed-hsm-dns-suffix--",
62 ServiceBusEndpointSuffix: "--service-bus-endpoint-suffix--",
63 ServiceManagementVMDNSSuffix: "--asm-vm-dns-suffix--",
64 ResourceManagerVMDNSSuffix: "--arm-vm-dns-suffix--",
65 ContainerRegistryDNSSuffix: "--container-registry-dns-suffix--",
66 TokenAudience: "--token-audience",
67 ResourceIdentifiers: ResourceIdentifier{
68 Batch: batchResourceID,
69 Datalake: datalakeResourceID,
70 Graph: graphResourceID,
71 KeyVault: keyvaultResourceID,
72 OperationalInsights: opInsightsResourceID,
73 OSSRDBMS: ossRDBMSResourceID,
74 CosmosDB: cosmosDBResourceID,
75 ManagedHSM: managedHSMResourceID,
76 },
77 }
78
79 func TestEnvironment_EnvironmentFromURL_NoOverride_Success(t *testing.T) {
80 fileContents, _ := ioutil.ReadFile(filepath.Join("testdata", "test_metadata_environment_1.json"))
81 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
82 w.WriteHeader(http.StatusOK)
83 w.Write([]byte(fileContents))
84 }))
85 defer ts.Close()
86
87 got, err := EnvironmentFromURL(ts.URL)
88 if err != nil {
89 t.Error(err)
90 }
91 if got.Name != "HybridEnvironment" {
92 t.Logf("got: %v want: HybridEnvironment", got.Name)
93 t.Fail()
94 }
95 }
96
97 func TestEnvironment_EnvironmentFromURL_OverrideStorageSuffix_Success(t *testing.T) {
98 fileContents, _ := ioutil.ReadFile(filepath.Join("testdata", "test_metadata_environment_1.json"))
99 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
100 w.WriteHeader(http.StatusOK)
101 w.Write([]byte(fileContents))
102 }))
103 defer ts.Close()
104 overrideProperty := OverrideProperty{
105 Key: EnvironmentStorageEndpointSuffix,
106 Value: "fakeStorageSuffix",
107 }
108 got, err := EnvironmentFromURL(ts.URL, overrideProperty)
109 if err != nil {
110 t.Error(err)
111 }
112 if got.StorageEndpointSuffix != "fakeStorageSuffix" {
113 t.Logf("got: %v want: fakeStorageSuffix", got.StorageEndpointSuffix)
114 t.Fail()
115 }
116 }
117
118 func TestEnvironment_EnvironmentFromURL_EmptyEndpoint_Failure(t *testing.T) {
119 _, err := EnvironmentFromURL("")
120
121 if err == nil {
122 t.Fail()
123 }
124 if err.Error() != "Metadata resource manager endpoint is empty" {
125 t.Fail()
126 }
127 }
128
129 func TestEnvironment_EnvironmentFromFile(t *testing.T) {
130 got, err := EnvironmentFromFile(filepath.Join("testdata", "test_environment_1.json"))
131 if err != nil {
132 t.Error(err)
133 }
134
135 if got != testEnvironment1 {
136 t.Logf("got: %v want: %v", got, testEnvironment1)
137 t.Fail()
138 }
139 }
140
141 func TestEnvironment_EnvironmentFromName_Stack(t *testing.T) {
142 _, currentFile, _, _ := runtime.Caller(0)
143 prevEnvFilepathValue := os.Getenv(EnvironmentFilepathName)
144 os.Setenv(EnvironmentFilepathName, filepath.Join(path.Dir(currentFile), "testdata", "test_environment_1.json"))
145 defer os.Setenv(EnvironmentFilepathName, prevEnvFilepathValue)
146
147 got, err := EnvironmentFromName("AZURESTACKCLOUD")
148 if err != nil {
149 t.Error(err)
150 }
151
152 if got != testEnvironment1 {
153 t.Logf("got: %v want: %v", got, testEnvironment1)
154 t.Fail()
155 }
156 }
157
158 func TestEnvironmentFromName(t *testing.T) {
159 name := "azurechinacloud"
160 if env, _ := EnvironmentFromName(name); env != ChinaCloud {
161 t.Errorf("Expected to get ChinaCloud for %q", name)
162 }
163
164 name = "AzureChinaCloud"
165 if env, _ := EnvironmentFromName(name); env != ChinaCloud {
166 t.Errorf("Expected to get ChinaCloud for %q", name)
167 }
168
169 name = "azuregermancloud"
170 if env, _ := EnvironmentFromName(name); env != GermanCloud {
171 t.Errorf("Expected to get GermanCloud for %q", name)
172 }
173
174 name = "AzureGermanCloud"
175 if env, _ := EnvironmentFromName(name); env != GermanCloud {
176 t.Errorf("Expected to get GermanCloud for %q", name)
177 }
178
179 name = "AzureCloud"
180 if env, _ := EnvironmentFromName(name); env != PublicCloud {
181 t.Errorf("Expected to get PublicCloud for %q", name)
182 }
183
184 name = "azurepubliccloud"
185 if env, _ := EnvironmentFromName(name); env != PublicCloud {
186 t.Errorf("Expected to get PublicCloud for %q", name)
187 }
188
189 name = "AzurePublicCloud"
190 if env, _ := EnvironmentFromName(name); env != PublicCloud {
191 t.Errorf("Expected to get PublicCloud for %q", name)
192 }
193
194 name = "azureusgovernmentcloud"
195 if env, _ := EnvironmentFromName(name); env != USGovernmentCloud {
196 t.Errorf("Expected to get USGovernmentCloud for %q", name)
197 }
198
199 name = "AzureUSGovernmentCloud"
200 if env, _ := EnvironmentFromName(name); env != USGovernmentCloud {
201 t.Errorf("Expected to get USGovernmentCloud for %q", name)
202 }
203
204 name = "azureusgovernment"
205 if env, _ := EnvironmentFromName(name); env != USGovernmentCloud {
206 t.Errorf("Expected to get USGovernmentCloud for %q", name)
207 }
208
209 name = "AzureUSGovernment"
210 if env, _ := EnvironmentFromName(name); env != USGovernmentCloud {
211 t.Errorf("Expected to get USGovernmentCloud for %q", name)
212 }
213
214 name = "thisisnotarealcloudenv"
215 if _, err := EnvironmentFromName(name); err == nil {
216 t.Errorf("Expected to get an error for %q", name)
217 }
218 }
219
220 func TestDeserializeEnvironment(t *testing.T) {
221 env := `{
222 "name": "--name--",
223 "ActiveDirectoryEndpoint": "--active-directory-endpoint--",
224 "galleryEndpoint": "--gallery-endpoint--",
225 "graphEndpoint": "--graph-endpoint--",
226 "serviceBusEndpoint": "--service-bus-endpoint--",
227 "keyVaultDNSSuffix": "--key-vault-dns-suffix--",
228 "keyVaultEndpoint": "--key-vault-endpoint--",
229 "managedHSMDNSSuffix": "--managed-hsm-dns-suffix--",
230 "managedHSMEndpoint": "--managed-hsm-endpoint--",
231 "managementPortalURL": "--management-portal-url--",
232 "publishSettingsURL": "--publish-settings-url--",
233 "resourceManagerEndpoint": "--resource-manager-endpoint--",
234 "serviceBusEndpointSuffix": "--service-bus-endpoint-suffix--",
235 "serviceManagementEndpoint": "--service-management-endpoint--",
236 "cosmosDBDNSSuffix": "--cosmos-db-dns-suffix--",
237 "mariaDBDNSSuffix": "--maria-db-dns-suffix--",
238 "mySqlDatabaseDNSSuffix": "--mysql-database-dns-suffix--",
239 "postgresqlDatabaseDNSSuffix": "--postgresql-database-dns-suffix--",
240 "sqlDatabaseDNSSuffix": "--sql-database-dns-suffix--",
241 "storageEndpointSuffix": "--storage-endpoint-suffix--",
242 "trafficManagerDNSSuffix": "--traffic-manager-dns-suffix--",
243 "serviceManagementVMDNSSuffix": "--asm-vm-dns-suffix--",
244 "resourceManagerVMDNSSuffix": "--arm-vm-dns-suffix--",
245 "containerRegistryDNSSuffix": "--container-registry-dns-suffix--",
246 "resourceIdentifiers": {
247 "batch": "` + batchResourceID + `",
248 "datalake": "` + datalakeResourceID + `",
249 "graph": "` + graphResourceID + `",
250 "keyVault": "` + keyvaultResourceID + `",
251 "operationalInsights": "` + opInsightsResourceID + `",
252 "ossRDBMS": "` + ossRDBMSResourceID + `",
253 "cosmosDB": "` + cosmosDBResourceID + `",
254 "managedHSM": "` + managedHSMResourceID + `"
255 }
256 }`
257
258 testSubject := Environment{}
259 err := json.Unmarshal([]byte(env), &testSubject)
260 if err != nil {
261 t.Fatalf("failed to unmarshal: %s", err)
262 }
263
264 if "--name--" != testSubject.Name {
265 t.Errorf("Expected Name to be \"--name--\", but got %q", testSubject.Name)
266 }
267 if "--management-portal-url--" != testSubject.ManagementPortalURL {
268 t.Errorf("Expected ManagementPortalURL to be \"--management-portal-url--\", but got %q", testSubject.ManagementPortalURL)
269 }
270 if "--publish-settings-url--" != testSubject.PublishSettingsURL {
271 t.Errorf("Expected PublishSettingsURL to be \"--publish-settings-url--\", but got %q", testSubject.PublishSettingsURL)
272 }
273 if "--service-management-endpoint--" != testSubject.ServiceManagementEndpoint {
274 t.Errorf("Expected ServiceManagementEndpoint to be \"--service-management-endpoint--\", but got %q", testSubject.ServiceManagementEndpoint)
275 }
276 if "--resource-manager-endpoint--" != testSubject.ResourceManagerEndpoint {
277 t.Errorf("Expected ResourceManagerEndpoint to be \"--resource-manager-endpoint--\", but got %q", testSubject.ResourceManagerEndpoint)
278 }
279 if "--active-directory-endpoint--" != testSubject.ActiveDirectoryEndpoint {
280 t.Errorf("Expected ActiveDirectoryEndpoint to be \"--active-directory-endpoint--\", but got %q", testSubject.ActiveDirectoryEndpoint)
281 }
282 if "--gallery-endpoint--" != testSubject.GalleryEndpoint {
283 t.Errorf("Expected GalleryEndpoint to be \"--gallery-endpoint--\", but got %q", testSubject.GalleryEndpoint)
284 }
285 if "--key-vault-endpoint--" != testSubject.KeyVaultEndpoint {
286 t.Errorf("Expected KeyVaultEndpoint to be \"--key-vault-endpoint--\", but got %q", testSubject.KeyVaultEndpoint)
287 }
288 if "--managed-hsm-endpoint--" != testSubject.ManagedHSMEndpoint {
289 t.Errorf("Expected ManagedHSMEndpoint to be \"--managed-hsm-endpoint--\", but got %q", testSubject.ManagedHSMEndpoint)
290 }
291 if "--service-bus-endpoint--" != testSubject.ServiceBusEndpoint {
292 t.Errorf("Expected ServiceBusEndpoint to be \"--service-bus-endpoint--\", but goet %q", testSubject.ServiceBusEndpoint)
293 }
294 if "--graph-endpoint--" != testSubject.GraphEndpoint {
295 t.Errorf("Expected GraphEndpoint to be \"--graph-endpoint--\", but got %q", testSubject.GraphEndpoint)
296 }
297 if "--storage-endpoint-suffix--" != testSubject.StorageEndpointSuffix {
298 t.Errorf("Expected StorageEndpointSuffix to be \"--storage-endpoint-suffix--\", but got %q", testSubject.StorageEndpointSuffix)
299 }
300 if "--cosmos-db-dns-suffix--" != testSubject.CosmosDBDNSSuffix {
301 t.Errorf("Expected cosmos-db-dns-suffix to be \"--cosmos-db-dns-suffix--\", but got %q", testSubject.CosmosDBDNSSuffix)
302 }
303 if "--maria-db-dns-suffix--" != testSubject.MariaDBDNSSuffix {
304 t.Errorf("Expected maria-db-dns-suffix to be \"--maria-db-dns-suffix--\", but got %q", testSubject.MariaDBDNSSuffix)
305 }
306 if "--mysql-database-dns-suffix--" != testSubject.MySQLDatabaseDNSSuffix {
307 t.Errorf("Expected mysql-database-dns-suffix to be \"--mysql-database-dns-suffix--\", but got %q", testSubject.MySQLDatabaseDNSSuffix)
308 }
309 if "--postgresql-database-dns-suffix--" != testSubject.PostgresqlDatabaseDNSSuffix {
310 t.Errorf("Expected postgresql-database-dns-suffix to be \"--postgresql-database-dns-suffix--\", but got %q", testSubject.PostgresqlDatabaseDNSSuffix)
311 }
312 if "--sql-database-dns-suffix--" != testSubject.SQLDatabaseDNSSuffix {
313 t.Errorf("Expected sql-database-dns-suffix to be \"--sql-database-dns-suffix--\", but got %q", testSubject.SQLDatabaseDNSSuffix)
314 }
315 if "--key-vault-dns-suffix--" != testSubject.KeyVaultDNSSuffix {
316 t.Errorf("Expected StorageEndpointSuffix to be \"--key-vault-dns-suffix--\", but got %q", testSubject.KeyVaultDNSSuffix)
317 }
318 if "--managed-hsm-dns-suffix--" != testSubject.ManagedHSMDNSSuffix {
319 t.Errorf("Expected StorageEndpointSuffix to be \"--managed-hsm-dns-suffix--\", but got %q", testSubject.ManagedHSMDNSSuffix)
320 }
321 if "--service-bus-endpoint-suffix--" != testSubject.ServiceBusEndpointSuffix {
322 t.Errorf("Expected StorageEndpointSuffix to be \"--service-bus-endpoint-suffix--\", but got %q", testSubject.ServiceBusEndpointSuffix)
323 }
324 if "--asm-vm-dns-suffix--" != testSubject.ServiceManagementVMDNSSuffix {
325 t.Errorf("Expected ServiceManagementVMDNSSuffix to be \"--asm-vm-dns-suffix--\", but got %q", testSubject.ServiceManagementVMDNSSuffix)
326 }
327 if "--arm-vm-dns-suffix--" != testSubject.ResourceManagerVMDNSSuffix {
328 t.Errorf("Expected ResourceManagerVMDNSSuffix to be \"--arm-vm-dns-suffix--\", but got %q", testSubject.ResourceManagerVMDNSSuffix)
329 }
330 if "--container-registry-dns-suffix--" != testSubject.ContainerRegistryDNSSuffix {
331 t.Errorf("Expected ContainerRegistryDNSSuffix to be \"--container-registry-dns-suffix--\", but got %q", testSubject.ContainerRegistryDNSSuffix)
332 }
333 if batchResourceID != testSubject.ResourceIdentifiers.Batch {
334 t.Errorf("Expected ResourceIdentifiers.Batch to be "+batchResourceID+", but got %q", testSubject.ResourceIdentifiers.Batch)
335 }
336 if datalakeResourceID != testSubject.ResourceIdentifiers.Datalake {
337 t.Errorf("Expected ResourceIdentifiers.Datalake to be "+datalakeResourceID+", but got %q", testSubject.ResourceIdentifiers.Datalake)
338 }
339 if graphResourceID != testSubject.ResourceIdentifiers.Graph {
340 t.Errorf("Expected ResourceIdentifiers.Graph to be "+graphResourceID+", but got %q", testSubject.ResourceIdentifiers.Graph)
341 }
342 if keyvaultResourceID != testSubject.ResourceIdentifiers.KeyVault {
343 t.Errorf("Expected ResourceIdentifiers.KeyVault to be "+keyvaultResourceID+", but got %q", testSubject.ResourceIdentifiers.KeyVault)
344 }
345 if opInsightsResourceID != testSubject.ResourceIdentifiers.OperationalInsights {
346 t.Errorf("Expected ResourceIdentifiers.OperationalInsights to be "+opInsightsResourceID+", but got %q", testSubject.ResourceIdentifiers.OperationalInsights)
347 }
348 if ossRDBMSResourceID != testSubject.ResourceIdentifiers.OSSRDBMS {
349 t.Errorf("Expected ResourceIdentifiers.OperationalInsights to be "+ossRDBMSResourceID+", but got %q", testSubject.ResourceIdentifiers.OSSRDBMS)
350 }
351 if cosmosDBResourceID != testSubject.ResourceIdentifiers.CosmosDB {
352 t.Errorf("Expected ResourceIdentifiers.CosmosDB to be "+cosmosDBResourceID+", but got %q", testSubject.ResourceIdentifiers.CosmosDB)
353 }
354 if managedHSMResourceID != testSubject.ResourceIdentifiers.ManagedHSM {
355 t.Errorf("Expected ResourceIdentifiers.ManagedHSM to be "+managedHSMResourceID+", but got %q", testSubject.ResourceIdentifiers.ManagedHSM)
356 }
357 }
358
359 func TestRoundTripSerialization(t *testing.T) {
360 env := Environment{
361 Name: "--unit-test--",
362 ManagementPortalURL: "--management-portal-url",
363 PublishSettingsURL: "--publish-settings-url--",
364 ServiceManagementEndpoint: "--service-management-endpoint--",
365 ResourceManagerEndpoint: "--resource-management-endpoint--",
366 ActiveDirectoryEndpoint: "--active-directory-endpoint--",
367 GalleryEndpoint: "--gallery-endpoint--",
368 KeyVaultEndpoint: "--key-vault--endpoint--",
369 GraphEndpoint: "--graph-endpoint--",
370 ServiceBusEndpoint: "--service-bus-endpoint--",
371 StorageEndpointSuffix: "--storage-endpoint-suffix--",
372 CosmosDBDNSSuffix: "--cosmos-db-dns-suffix--",
373 MariaDBDNSSuffix: "--maria-db-dns-suffix--",
374 MySQLDatabaseDNSSuffix: "--mysql-database-dns-suffix--",
375 PostgresqlDatabaseDNSSuffix: "--postgresql-database-dns-suffix--",
376 SQLDatabaseDNSSuffix: "--sql-database-dns-suffix--",
377 TrafficManagerDNSSuffix: "--traffic-manager-dns-suffix--",
378 KeyVaultDNSSuffix: "--key-vault-dns-suffix--",
379 ServiceBusEndpointSuffix: "--service-bus-endpoint-suffix--",
380 ServiceManagementVMDNSSuffix: "--asm-vm-dns-suffix--",
381 ResourceManagerVMDNSSuffix: "--arm-vm-dns-suffix--",
382 ContainerRegistryDNSSuffix: "--container-registry-dns-suffix--",
383 ResourceIdentifiers: ResourceIdentifier{
384 Batch: batchResourceID,
385 Datalake: datalakeResourceID,
386 Graph: graphResourceID,
387 KeyVault: keyvaultResourceID,
388 OperationalInsights: opInsightsResourceID,
389 OSSRDBMS: ossRDBMSResourceID,
390 CosmosDB: cosmosDBResourceID,
391 },
392 }
393
394 bytes, err := json.Marshal(env)
395 if err != nil {
396 t.Fatalf("failed to marshal: %s", err)
397 }
398
399 testSubject := Environment{}
400 err = json.Unmarshal(bytes, &testSubject)
401 if err != nil {
402 t.Fatalf("failed to unmarshal: %s", err)
403 }
404
405 if env.Name != testSubject.Name {
406 t.Errorf("Expected Name to be %q, but got %q", env.Name, testSubject.Name)
407 }
408 if env.ManagementPortalURL != testSubject.ManagementPortalURL {
409 t.Errorf("Expected ManagementPortalURL to be %q, but got %q", env.ManagementPortalURL, testSubject.ManagementPortalURL)
410 }
411 if env.PublishSettingsURL != testSubject.PublishSettingsURL {
412 t.Errorf("Expected PublishSettingsURL to be %q, but got %q", env.PublishSettingsURL, testSubject.PublishSettingsURL)
413 }
414 if env.ServiceManagementEndpoint != testSubject.ServiceManagementEndpoint {
415 t.Errorf("Expected ServiceManagementEndpoint to be %q, but got %q", env.ServiceManagementEndpoint, testSubject.ServiceManagementEndpoint)
416 }
417 if env.ResourceManagerEndpoint != testSubject.ResourceManagerEndpoint {
418 t.Errorf("Expected ResourceManagerEndpoint to be %q, but got %q", env.ResourceManagerEndpoint, testSubject.ResourceManagerEndpoint)
419 }
420 if env.ActiveDirectoryEndpoint != testSubject.ActiveDirectoryEndpoint {
421 t.Errorf("Expected ActiveDirectoryEndpoint to be %q, but got %q", env.ActiveDirectoryEndpoint, testSubject.ActiveDirectoryEndpoint)
422 }
423 if env.GalleryEndpoint != testSubject.GalleryEndpoint {
424 t.Errorf("Expected GalleryEndpoint to be %q, but got %q", env.GalleryEndpoint, testSubject.GalleryEndpoint)
425 }
426 if env.ServiceBusEndpoint != testSubject.ServiceBusEndpoint {
427 t.Errorf("Expected ServiceBusEnpoint to be %q, but got %q", env.ServiceBusEndpoint, testSubject.ServiceBusEndpoint)
428 }
429 if env.KeyVaultEndpoint != testSubject.KeyVaultEndpoint {
430 t.Errorf("Expected KeyVaultEndpoint to be %q, but got %q", env.KeyVaultEndpoint, testSubject.KeyVaultEndpoint)
431 }
432 if env.GraphEndpoint != testSubject.GraphEndpoint {
433 t.Errorf("Expected GraphEndpoint to be %q, but got %q", env.GraphEndpoint, testSubject.GraphEndpoint)
434 }
435 if env.StorageEndpointSuffix != testSubject.StorageEndpointSuffix {
436 t.Errorf("Expected StorageEndpointSuffix to be %q, but got %q", env.StorageEndpointSuffix, testSubject.StorageEndpointSuffix)
437 }
438 if env.CosmosDBDNSSuffix != testSubject.CosmosDBDNSSuffix {
439 t.Errorf("Expected CosmosDBDNSSuffix to be %q, but got %q", env.CosmosDBDNSSuffix, testSubject.CosmosDBDNSSuffix)
440 }
441 if env.MariaDBDNSSuffix != testSubject.MariaDBDNSSuffix {
442 t.Errorf("Expected MariaDBDNSSuffix to be %q, but got %q", env.MariaDBDNSSuffix, testSubject.MariaDBDNSSuffix)
443 }
444 if env.MySQLDatabaseDNSSuffix != testSubject.MySQLDatabaseDNSSuffix {
445 t.Errorf("Expected MySQLDatabaseDNSSuffix to be %q, but got %q", env.MySQLDatabaseDNSSuffix, testSubject.MySQLDatabaseDNSSuffix)
446 }
447 if env.PostgresqlDatabaseDNSSuffix != testSubject.PostgresqlDatabaseDNSSuffix {
448 t.Errorf("Expected PostgresqlDatabaseDNSSuffix to be %q, but got %q", env.PostgresqlDatabaseDNSSuffix, testSubject.PostgresqlDatabaseDNSSuffix)
449 }
450 if env.SQLDatabaseDNSSuffix != testSubject.SQLDatabaseDNSSuffix {
451 t.Errorf("Expected SQLDatabaseDNSSuffix to be %q, but got %q", env.SQLDatabaseDNSSuffix, testSubject.SQLDatabaseDNSSuffix)
452 }
453 if env.TrafficManagerDNSSuffix != testSubject.TrafficManagerDNSSuffix {
454 t.Errorf("Expected TrafficManagerDNSSuffix to be %q, but got %q", env.TrafficManagerDNSSuffix, testSubject.TrafficManagerDNSSuffix)
455 }
456 if env.KeyVaultDNSSuffix != testSubject.KeyVaultDNSSuffix {
457 t.Errorf("Expected KeyVaultDNSSuffix to be %q, but got %q", env.KeyVaultDNSSuffix, testSubject.KeyVaultDNSSuffix)
458 }
459 if env.ServiceBusEndpointSuffix != testSubject.ServiceBusEndpointSuffix {
460 t.Errorf("Expected ServiceBusEndpointSuffix to be %q, but got %q", env.ServiceBusEndpointSuffix, testSubject.ServiceBusEndpointSuffix)
461 }
462 if env.ServiceManagementVMDNSSuffix != testSubject.ServiceManagementVMDNSSuffix {
463 t.Errorf("Expected ServiceManagementVMDNSSuffix to be %q, but got %q", env.ServiceManagementVMDNSSuffix, testSubject.ServiceManagementVMDNSSuffix)
464 }
465 if env.ResourceManagerVMDNSSuffix != testSubject.ResourceManagerVMDNSSuffix {
466 t.Errorf("Expected ResourceManagerVMDNSSuffix to be %q, but got %q", env.ResourceManagerVMDNSSuffix, testSubject.ResourceManagerVMDNSSuffix)
467 }
468 if env.ContainerRegistryDNSSuffix != testSubject.ContainerRegistryDNSSuffix {
469 t.Errorf("Expected ContainerRegistryDNSSuffix to be %q, but got %q", env.ContainerRegistryDNSSuffix, testSubject.ContainerRegistryDNSSuffix)
470 }
471 if env.ResourceIdentifiers.Batch != testSubject.ResourceIdentifiers.Batch {
472 t.Errorf("Expected ResourceIdentifiers.Batch to be %q, but got %q", env.ResourceIdentifiers.Batch, testSubject.ResourceIdentifiers.Batch)
473 }
474 if env.ResourceIdentifiers.Datalake != testSubject.ResourceIdentifiers.Datalake {
475 t.Errorf("Expected ResourceIdentifiers.Datalake to be %q, but got %q", env.ResourceIdentifiers.Datalake, testSubject.ResourceIdentifiers.Datalake)
476 }
477 if env.ResourceIdentifiers.Graph != testSubject.ResourceIdentifiers.Graph {
478 t.Errorf("Expected ResourceIdentifiers.Graph to be %q, but got %q", env.ResourceIdentifiers.Graph, testSubject.ResourceIdentifiers.Graph)
479 }
480 if env.ResourceIdentifiers.KeyVault != testSubject.ResourceIdentifiers.KeyVault {
481 t.Errorf("Expected ResourceIdentifiers.KeyVault to be %q, but got %q", env.ResourceIdentifiers.KeyVault, testSubject.ResourceIdentifiers.KeyVault)
482 }
483 if env.ResourceIdentifiers.OperationalInsights != testSubject.ResourceIdentifiers.OperationalInsights {
484 t.Errorf("Expected ResourceIdentifiers.OperationalInsights to be %q, but got %q", env.ResourceIdentifiers.OperationalInsights, testSubject.ResourceIdentifiers.OperationalInsights)
485 }
486 if env.ResourceIdentifiers.OSSRDBMS != testSubject.ResourceIdentifiers.OSSRDBMS {
487 t.Errorf("Expected ResourceIdentifiers.OSSRDBMS to be %q, but got %q", env.ResourceIdentifiers.OSSRDBMS, testSubject.ResourceIdentifiers.OSSRDBMS)
488 }
489 if env.ResourceIdentifiers.CosmosDB != testSubject.ResourceIdentifiers.CosmosDB {
490 t.Errorf("Expected ResourceIdentifiers.CosmosDB to be %q, but got %q", env.ResourceIdentifiers.CosmosDB, testSubject.ResourceIdentifiers.CosmosDB)
491 }
492 }
493
494 func TestSetEnvironment(t *testing.T) {
495 const testEnvName = "testenvironment"
496 if _, err := EnvironmentFromName(testEnvName); err == nil {
497 t.Fatal("expected non-nil error")
498 }
499 testEnv := Environment{Name: testEnvName}
500 SetEnvironment(testEnvName, testEnv)
501 result, err := EnvironmentFromName(testEnvName)
502 if err != nil {
503 t.Fatalf("failed to get custom environment: %v", err)
504 }
505 if testEnv != result {
506 t.Fatalf("expected %v, got %v", testEnv, result)
507 }
508 }
509
View as plain text