in jetbrains-core/tst/software/aws/toolkits/jetbrains/core/credentials/sso/SsoAccessTokenProviderTest.kt [109:151]
fun getAccessTokenWithoutCaches() {
val expirationClientRegistration = clock.instant().plusSeconds(120)
setupCacheStub(returnValue = null)
ssoOidcClient.stub {
on(
ssoOidcClient.registerClient(
RegisterClientRequest.builder()
.clientType("public")
.clientName("aws-toolkit-jetbrains-${Instant.now(clock)}")
.build()
)
).thenReturn(
RegisterClientResponse.builder()
.clientId(clientId)
.clientSecret(clientSecret)
.clientSecretExpiresAt(expirationClientRegistration.toEpochMilli())
.build()
)
stubStartDeviceAuthorization()
stubCreateToken()
}
val accessToken = runBlocking { sut.accessToken() }
assertThat(accessToken).usingRecursiveComparison()
.isEqualTo(
AccessToken(
ssoUrl,
ssoRegion,
"accessToken",
clock.instant().plusSeconds(180)
)
)
verify(ssoOidcClient).registerClient(any<RegisterClientRequest>())
verify(ssoOidcClient).startDeviceAuthorization(any<StartDeviceAuthorizationRequest>())
verify(ssoOidcClient).createToken(any<CreateTokenRequest>())
verify(ssoCache).loadAccessToken(ssoUrl)
verify(ssoCache).loadClientRegistration(ssoRegion)
verify(ssoCache).saveClientRegistration(eq(ssoRegion), any())
verify(ssoCache).saveAccessToken(ssoUrl, accessToken)
}