3
3
4
4
package software.aws.toolkits.jetbrains.core.credentials
5
5
6
- import com.intellij.configurationStore.deserializeAndLoadState
7
- import com.intellij.configurationStore.serializeStateInto
8
6
import com.intellij.openapi.application.ApplicationManager
9
7
import org.assertj.core.api.Assertions.assertThat
10
- import org.jdom.Element
11
- import org.jdom.output.XMLOutputter
12
8
import org.junit.After
13
9
import org.junit.Before
14
10
import org.junit.Rule
@@ -24,8 +20,9 @@ import software.aws.toolkits.jetbrains.core.region.AwsRegionProvider
24
20
import software.aws.toolkits.jetbrains.core.region.MockRegionProviderRule
25
21
import software.aws.toolkits.jetbrains.core.region.getDefaultRegion
26
22
import software.aws.toolkits.jetbrains.services.sts.StsResources
23
+ import software.aws.toolkits.jetbrains.utils.deserializeState
27
24
import software.aws.toolkits.jetbrains.utils.rules.HeavyJavaCodeInsightTestFixtureRule
28
- import software.aws.toolkits.jetbrains.utils.toElement
25
+ import software.aws.toolkits.jetbrains.utils.serializeState
29
26
import java.nio.file.Files
30
27
import java.util.concurrent.CompletableFuture
31
28
import java.util.concurrent.CountDownLatch
@@ -72,7 +69,7 @@ class DefaultAwsConnectionManagerTest {
72
69
73
70
@Test
74
71
fun `Starts with no active credentials` () {
75
- assertThat(manager.isValidConnectionSettings()).isFalse()
72
+ assertThat(manager.isValidConnectionSettings()).isFalse
76
73
assertThat(manager.recentlyUsedCredentials()).isEmpty()
77
74
}
78
75
@@ -91,19 +88,19 @@ class DefaultAwsConnectionManagerTest {
91
88
92
89
@Test
93
90
fun `On load, default region of credential is used if there is no other active region` () {
94
- val element =
95
- """
96
- <AccountState>
97
- <option name="activeProfile" value="Mock" />
98
- </AccountState>
99
- """ .toElement()
100
-
101
91
val region = AwsRegion (" us-west-2" , " Oregon" , " AWS" )
102
92
val credentials = mockCredentialManager.addCredentials(id = " Mock" , region = region)
103
93
markConnectionSettingsAsValid(credentials, regionProviderRule.defaultRegion())
104
94
regionProviderRule.addRegion(region)
105
95
106
- deserializeAndLoadState(manager, element)
96
+ deserializeState(
97
+ """
98
+ <AccountState>
99
+ <option name="activeProfile" value="Mock" />
100
+ </AccountState>
101
+ """ ,
102
+ manager,
103
+ )
107
104
108
105
manager.waitUntilConnectionStateIsStable()
109
106
@@ -126,14 +123,14 @@ class DefaultAwsConnectionManagerTest {
126
123
127
124
changeCredentialProvider(credentials)
128
125
129
- assertThat(manager.isValidConnectionSettings()).isTrue()
126
+ assertThat(manager.isValidConnectionSettings()).isTrue
130
127
assertThat(manager.connectionSettings()?.credentials?.id).isEqualTo(credentials.id)
131
128
132
129
assertThat(manager.recentlyUsedCredentials()).element(0 ).isEqualTo(credentials)
133
130
134
131
changeCredentialProvider(credentials2)
135
132
136
- assertThat(manager.isValidConnectionSettings()).isTrue()
133
+ assertThat(manager.isValidConnectionSettings()).isTrue
137
134
assertThat(manager.connectionSettings()?.credentials?.id).isEqualTo(credentials2.id)
138
135
139
136
assertThat(manager.recentlyUsedCredentials()).element(0 ).isEqualTo(credentials2)
@@ -210,9 +207,7 @@ class DefaultAwsConnectionManagerTest {
210
207
@Test
211
208
fun `Active region is persisted` () {
212
209
manager.changeRegion(AwsRegion .GLOBAL )
213
- val element = Element (" AccountState" )
214
- serializeStateInto(manager, element)
215
- assertThat(element.string()).isEqualToIgnoringWhitespace(
210
+ assertThat(serializeState(" AccountState" , manager)).isEqualToIgnoringWhitespace(
216
211
"""
217
212
<AccountState>
218
213
<option name="activeRegion" value="aws-global" />
@@ -232,9 +227,7 @@ class DefaultAwsConnectionManagerTest {
232
227
markConnectionSettingsAsValid(credentials, manager.activeRegion)
233
228
changeCredentialProvider(credentials)
234
229
235
- val element = Element (" AccountState" )
236
- serializeStateInto(manager, element)
237
- assertThat(element.string()).isEqualToIgnoringWhitespace(
230
+ assertThat(serializeState(" AccountState" , manager)).isEqualToIgnoringWhitespace(
238
231
"""
239
232
<AccountState>
240
233
<option name="activeProfile" value="Mock" />
@@ -250,7 +243,10 @@ class DefaultAwsConnectionManagerTest {
250
243
251
244
@Test
252
245
fun `Active credential can be restored from persistence` () {
253
- val element =
246
+ val credentials = mockCredentialManager.addCredentials(" Mock" )
247
+ markConnectionSettingsAsValid(credentials, regionProviderRule.defaultRegion())
248
+
249
+ deserializeState(
254
250
"""
255
251
<AccountState>
256
252
<option name="activeProfile" value="Mock" />
@@ -260,12 +256,9 @@ class DefaultAwsConnectionManagerTest {
260
256
</list>
261
257
</option>
262
258
</AccountState>
263
- """ .toElement()
264
-
265
- val credentials = mockCredentialManager.addCredentials(" Mock" )
266
- markConnectionSettingsAsValid(credentials, regionProviderRule.defaultRegion())
267
-
268
- deserializeAndLoadState(manager, element)
259
+ """ ,
260
+ manager,
261
+ )
269
262
270
263
manager.waitUntilConnectionStateIsStable()
271
264
@@ -275,7 +268,7 @@ class DefaultAwsConnectionManagerTest {
275
268
276
269
@Test
277
270
fun `Active region can be restored from persistence` () {
278
- val element =
271
+ deserializeState(
279
272
"""
280
273
<AccountState>
281
274
<option name="activeRegion" value="${getDefaultRegion().id} " />
@@ -285,9 +278,9 @@ class DefaultAwsConnectionManagerTest {
285
278
</list>
286
279
</option>
287
280
</AccountState>
288
- """ .toElement()
289
-
290
- deserializeAndLoadState(manager, element )
281
+ """ ,
282
+ manager,
283
+ )
291
284
292
285
manager.waitUntilConnectionStateIsStable()
293
286
@@ -299,7 +292,7 @@ class DefaultAwsConnectionManagerTest {
299
292
300
293
@Test
301
294
fun `Attempting to restore a region that no longer exists is handled gracefully` () {
302
- val element =
295
+ deserializeState(
303
296
"""
304
297
<AccountState>
305
298
<option name="activeRegion" value="DoesNotExist" />
@@ -309,8 +302,9 @@ class DefaultAwsConnectionManagerTest {
309
302
</list>
310
303
</option>
311
304
</AccountState>
312
- """ .toElement()
313
- deserializeAndLoadState(manager, element)
305
+ """ ,
306
+ manager,
307
+ )
314
308
315
309
manager.waitUntilConnectionStateIsStable()
316
310
@@ -320,7 +314,7 @@ class DefaultAwsConnectionManagerTest {
320
314
321
315
@Test
322
316
fun `Attempting to restore a credential that no longer exists is handled gracefully` () {
323
- val element =
317
+ deserializeState(
324
318
"""
325
319
<AccountState>
326
320
<option name="activeProfile" value="DoesNotExist" />
@@ -330,13 +324,13 @@ class DefaultAwsConnectionManagerTest {
330
324
</list>
331
325
</option>
332
326
</AccountState>
333
- """ .toElement()
334
-
335
- deserializeAndLoadState(manager, element )
327
+ """ ,
328
+ manager,
329
+ )
336
330
337
331
manager.waitUntilConnectionStateIsStable()
338
332
339
- assertThat(manager.isValidConnectionSettings()).isFalse()
333
+ assertThat(manager.isValidConnectionSettings()).isFalse
340
334
assertThat(manager.recentlyUsedCredentials()).isEmpty()
341
335
assertThat(manager.connectionSettings()).isNull()
342
336
}
@@ -347,7 +341,7 @@ class DefaultAwsConnectionManagerTest {
347
341
348
342
markConnectionSettingsAsInvalid(mockCredentials, regionProviderRule.defaultRegion())
349
343
350
- val element =
344
+ deserializeState(
351
345
"""
352
346
<AccountState>
353
347
<option name="activeProfile" value="${mockCredentials.id} " />
@@ -357,30 +351,30 @@ class DefaultAwsConnectionManagerTest {
357
351
</list>
358
352
</option>
359
353
</AccountState>
360
- """ .toElement()
361
-
362
- deserializeAndLoadState(manager, element )
354
+ """ ,
355
+ manager,
356
+ )
363
357
364
358
manager.waitUntilConnectionStateIsStable()
365
359
366
- assertThat(manager.isValidConnectionSettings()).isFalse()
360
+ assertThat(manager.isValidConnectionSettings()).isFalse
367
361
}
368
362
369
363
@Test
370
364
fun `On load, default credential is selected if no other credential is active` () {
371
365
val credentials = mockCredentialManager.addCredentials(DEFAULT_PROFILE_ID )
372
366
markConnectionSettingsAsValid(credentials, regionProviderRule.defaultRegion())
373
367
374
- val element =
368
+ deserializeState(
375
369
"""
376
370
<AccountState/>
377
- """ .toElement()
378
-
379
- deserializeAndLoadState(manager, element )
371
+ """ ,
372
+ manager,
373
+ )
380
374
381
375
manager.waitUntilConnectionStateIsStable()
382
376
383
- assertThat(manager.isValidConnectionSettings()).isTrue()
377
+ assertThat(manager.isValidConnectionSettings()).isTrue
384
378
assertThat(manager.connectionSettings()?.credentials?.id).isEqualTo(DEFAULT_PROFILE_ID )
385
379
386
380
assertThat(manager.recentlyUsedCredentials()).hasSize(1 )
@@ -398,13 +392,13 @@ class DefaultAwsConnectionManagerTest {
398
392
changeRegion(AwsRegionProvider .getInstance().defaultRegion())
399
393
changeCredentialProvider(adminCredentials)
400
394
401
- assertThat(manager.isValidConnectionSettings()).isTrue()
395
+ assertThat(manager.isValidConnectionSettings()).isTrue
402
396
403
397
assertThat(manager.selectedCredentialIdentifier?.id).isEqualTo(adminCredentials.id)
404
398
405
399
ApplicationManager .getApplication().messageBus.syncPublisher(CredentialManager .CREDENTIALS_CHANGED ).providerRemoved(adminCredentials)
406
400
407
- assertThat(manager.isValidConnectionSettings()).isFalse()
401
+ assertThat(manager.isValidConnectionSettings()).isFalse
408
402
assertThat(manager.selectedCredentialIdentifier).isNull()
409
403
assertThat(manager.connectionSettings()).isNull()
410
404
}
@@ -418,13 +412,13 @@ class DefaultAwsConnectionManagerTest {
418
412
changeRegion(AwsRegionProvider .getInstance().defaultRegion())
419
413
changeCredentialProvider(defaultCredentials)
420
414
421
- assertThat(manager.isValidConnectionSettings()).isFalse()
415
+ assertThat(manager.isValidConnectionSettings()).isFalse
422
416
423
417
markConnectionSettingsAsValid(defaultCredentials, AwsRegionProvider .getInstance().defaultRegion())
424
418
manager.refreshConnectionState()
425
419
manager.waitUntilConnectionStateIsStable()
426
420
427
- assertThat(manager.isValidConnectionSettings()).isTrue()
421
+ assertThat(manager.isValidConnectionSettings()).isTrue
428
422
}
429
423
430
424
@Test
@@ -436,13 +430,13 @@ class DefaultAwsConnectionManagerTest {
436
430
changeRegion(AwsRegionProvider .getInstance().defaultRegion())
437
431
changeCredentialProvider(defaultCredentials)
438
432
439
- assertThat(manager.isValidConnectionSettings()).isFalse()
433
+ assertThat(manager.isValidConnectionSettings()).isFalse
440
434
441
435
markConnectionSettingsAsValid(defaultCredentials, AwsRegionProvider .getInstance().defaultRegion())
442
436
ApplicationManager .getApplication().messageBus.syncPublisher(CredentialManager .CREDENTIALS_CHANGED ).providerModified(defaultCredentials)
443
437
manager.waitUntilConnectionStateIsStable()
444
438
445
- assertThat(manager.isValidConnectionSettings()).isTrue()
439
+ assertThat(manager.isValidConnectionSettings()).isTrue
446
440
}
447
441
448
442
@Test
@@ -454,13 +448,13 @@ class DefaultAwsConnectionManagerTest {
454
448
changeRegion(AwsRegionProvider .getInstance().defaultRegion())
455
449
changeCredentialProvider(credentials)
456
450
457
- assertThat(manager.isValidConnectionSettings()).isTrue()
451
+ assertThat(manager.isValidConnectionSettings()).isTrue
458
452
459
453
markConnectionSettingsAsInvalid(credentials, AwsRegionProvider .getInstance().defaultRegion())
460
454
ApplicationManager .getApplication().messageBus.syncPublisher(CredentialManager .CREDENTIALS_CHANGED ).providerModified(credentials)
461
455
manager.waitUntilConnectionStateIsStable()
462
456
463
- assertThat(manager.isValidConnectionSettings()).isFalse()
457
+ assertThat(manager.isValidConnectionSettings()).isFalse
464
458
}
465
459
466
460
private fun markConnectionSettingsAsValid (credentialsIdentifier : CredentialIdentifier , region : AwsRegion ) {
@@ -488,7 +482,6 @@ class DefaultAwsConnectionManagerTest {
488
482
manager.waitUntilConnectionStateIsStable()
489
483
}
490
484
491
- private fun Element?.string (): String = XMLOutputter ().outputString(this )
492
485
companion object {
493
486
const val DEFAULT_PROFILE_ID = " profile:default"
494
487
}
0 commit comments