1
1
package no.nav.syfo.client.azuread
2
2
3
- import io.ktor.server.testing.TestApplicationEngine
4
3
import io.mockk.clearMocks
5
4
import io.mockk.every
6
5
import io.mockk.justRun
@@ -25,122 +24,117 @@ class AzureAdClientSpek : Spek({
25
24
val anyToken = " anyToken"
26
25
27
26
describe(AzureAdClientSpek ::class.java.simpleName) {
27
+ val externalMockEnvironment = ExternalMockEnvironment .getInstance()
28
+ val cacheMock = mockk<RedisStore >()
29
+
30
+ val azureAdClient = AzureAdV2Client (
31
+ aadAppClient = externalMockEnvironment.environment.aadAppClient,
32
+ aadAppSecret = externalMockEnvironment.environment.aadAppSecret,
33
+ aadTokenEndpoint = externalMockEnvironment.environment.aadTokenEndpoint,
34
+ redisStore = cacheMock,
35
+ )
36
+ val systemTokenCacheKey =
37
+ " ${AzureAdV2Client .CACHE_AZUREAD_TOKEN_SYSTEM_KEY_PREFIX }${externalMockEnvironment.environment.pdlClientId} "
38
+ val cachedToken = AzureAdV2Token (anyToken, LocalDateTime .now().plusHours(1))
39
+ val cachedTokenString = mapper.writeValueAsString(cachedToken)
40
+
41
+ beforeEachTest {
42
+ clearMocks(cacheMock)
43
+ }
28
44
29
- with(TestApplicationEngine ()) {
30
- start()
31
-
32
- val externalMockEnvironment = ExternalMockEnvironment .getInstance()
33
- val cacheMock = mockk<RedisStore >()
34
-
35
- val azureAdClient = AzureAdV2Client (
36
- aadAppClient = externalMockEnvironment.environment.aadAppClient,
37
- aadAppSecret = externalMockEnvironment.environment.aadAppSecret,
38
- aadTokenEndpoint = externalMockEnvironment.environment.aadTokenEndpoint,
39
- redisStore = cacheMock,
40
- )
41
- val systemTokenCacheKey =
42
- " ${AzureAdV2Client .CACHE_AZUREAD_TOKEN_SYSTEM_KEY_PREFIX }${externalMockEnvironment.environment.pdlClientId} "
43
- val cachedToken = AzureAdV2Token (anyToken, LocalDateTime .now().plusHours(1))
44
- val cachedTokenString = mapper.writeValueAsString(cachedToken)
45
-
46
- beforeEachTest {
47
- clearMocks(cacheMock)
48
- }
45
+ it("azureAdClient returns cached system token") {
46
+ every { cacheMock.mapper } returns mapper
47
+ every { cacheMock.get(systemTokenCacheKey) } returns cachedTokenString
49
48
50
- it("azureAdClient returns cached system token") {
51
- every { cacheMock.mapper } returns mapper
52
- every { cacheMock.get(systemTokenCacheKey) } returns cachedTokenString
53
-
54
- runBlocking {
55
- azureAdClient.getSystemToken(
56
- scopeClientId = externalMockEnvironment.environment.pdlClientId,
57
- ) shouldBeEqualTo cachedToken
58
- }
59
- verify(exactly = 1) { cacheMock.get(systemTokenCacheKey) }
60
- verify(exactly = 0) { cacheMock.set(any(), any(), any()) }
49
+ runBlocking {
50
+ azureAdClient.getSystemToken(
51
+ scopeClientId = externalMockEnvironment.environment.pdlClientId,
52
+ ) shouldBeEqualTo cachedToken
61
53
}
54
+ verify(exactly = 1) { cacheMock.get(systemTokenCacheKey) }
55
+ verify(exactly = 0) { cacheMock.set(any(), any(), any()) }
56
+ }
62
57
63
- it("azureAdClient returns new token when cached token missing") {
64
- every { cacheMock.mapper } returns mapper
65
- every { cacheMock.get(systemTokenCacheKey) } returns null
66
- justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
67
-
68
- runBlocking {
69
- azureAdClient.getSystemToken(
70
- scopeClientId = externalMockEnvironment.environment.pdlClientId,
71
- )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
72
- }
73
- verify(exactly = 1) { cacheMock.get(systemTokenCacheKey) }
74
- verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
58
+ it("azureAdClient returns new token when cached token missing") {
59
+ every { cacheMock.mapper } returns mapper
60
+ every { cacheMock.get(systemTokenCacheKey) } returns null
61
+ justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
62
+
63
+ runBlocking {
64
+ azureAdClient.getSystemToken(
65
+ scopeClientId = externalMockEnvironment.environment.pdlClientId,
66
+ )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
75
67
}
76
- val expiredToken = AzureAdV2Token (anyToken, LocalDateTime .now())
77
- val expiredTokenString = mapper.writeValueAsString(expiredToken)
78
-
79
- it("azureAdClient returns new token when cached token is expired") {
80
- every { cacheMock. mapper } returns mapper
81
- every { cacheMock.get(systemTokenCacheKey) } returns expiredTokenString
82
- justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
83
-
84
- runBlocking {
85
- azureAdClient.getSystemToken(
86
- scopeClientId = externalMockEnvironment.environment.pdlClientId,
87
- )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
88
- }
89
- verify(exactly = 1) { cacheMock.get(systemTokenCacheKey) }
90
- verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
68
+ verify(exactly = 1) { cacheMock.get(systemTokenCacheKey) }
69
+ verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
70
+ }
71
+ val expiredToken = AzureAdV2Token (anyToken, LocalDateTime .now())
72
+ val expiredTokenString = mapper.writeValueAsString(expiredToken)
73
+
74
+ it("azureAdClient returns new token when cached token is expired") {
75
+ every { cacheMock.mapper } returns mapper
76
+ every { cacheMock.get(systemTokenCacheKey) } returns expiredTokenString
77
+ justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
78
+
79
+ runBlocking {
80
+ azureAdClient.getSystemToken(
81
+ scopeClientId = externalMockEnvironment.environment.pdlClientId,
82
+ )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
91
83
}
92
- val validToken = generateJWTNavIdent(
93
- externalMockEnvironment.environment.aadAppClient,
94
- externalMockEnvironment.wellKnownVeilederV2.issuer,
95
- VEILEDER_IDENT ,
96
- )
97
-
98
- val scopeClientId = externalMockEnvironment.environment.syfobehandlendeenhetClientId
99
- val oboTokenCacheKey = " $VEILEDER_IDENT - $JWT_AZP - $scopeClientId "
100
-
101
- it("azureAdClient returns cached obo token") {
102
- every { cacheMock.mapper } returns mapper
103
- every { cacheMock.get(oboTokenCacheKey) } returns cachedTokenString
104
-
105
- runBlocking {
106
- azureAdClient.getOnBehalfOfToken(
107
- scopeClientId = scopeClientId,
108
- validToken,
109
- ) shouldBeEqualTo cachedToken
110
- }
111
- verify(exactly = 1) { cacheMock.get(oboTokenCacheKey) }
112
- verify(exactly = 0) { cacheMock.set(any(), any(), any()) }
84
+ verify(exactly = 1) { cacheMock.get(systemTokenCacheKey) }
85
+ verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
86
+ }
87
+ val validToken = generateJWTNavIdent(
88
+ externalMockEnvironment.environment.aadAppClient,
89
+ externalMockEnvironment.wellKnownVeilederV2.issuer,
90
+ VEILEDER_IDENT ,
91
+ )
92
+
93
+ val scopeClientId = externalMockEnvironment.environment.syfobehandlendeenhetClientId
94
+ val oboTokenCacheKey = " $VEILEDER_IDENT - $JWT_AZP - $scopeClientId "
95
+
96
+ it("azureAdClient returns cached obo token") {
97
+ every { cacheMock.mapper } returns mapper
98
+ every { cacheMock.get(oboTokenCacheKey) } returns cachedTokenString
99
+
100
+ runBlocking {
101
+ azureAdClient.getOnBehalfOfToken(
102
+ scopeClientId = scopeClientId,
103
+ validToken,
104
+ ) shouldBeEqualTo cachedToken
113
105
}
106
+ verify(exactly = 1) { cacheMock.get(oboTokenCacheKey) }
107
+ verify(exactly = 0) { cacheMock.set(any(), any(), any()) }
108
+ }
109
+
110
+ it("azureAdClient returns new obo token when cached token missing") {
111
+ every { cacheMock.mapper } returns mapper
112
+ every { cacheMock.get(oboTokenCacheKey) } returns null
113
+ justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
114
114
115
- it("azureAdClient returns new obo token when cached token missing") {
116
- every { cacheMock.mapper } returns mapper
117
- every { cacheMock.get(oboTokenCacheKey) } returns null
118
- justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
119
-
120
- runBlocking {
121
- azureAdClient.getOnBehalfOfToken(
122
- scopeClientId = scopeClientId,
123
- validToken,
124
- )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
125
- }
126
- verify(exactly = 1) { cacheMock.get(oboTokenCacheKey) }
127
- verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
115
+ runBlocking {
116
+ azureAdClient.getOnBehalfOfToken(
117
+ scopeClientId = scopeClientId,
118
+ validToken,
119
+ )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
128
120
}
121
+ verify(exactly = 1) { cacheMock.get(oboTokenCacheKey) }
122
+ verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
123
+ }
124
+
125
+ it("azureAdClient returns new obo token when cached token is expired") {
126
+ every { cacheMock.mapper } returns mapper
127
+ every { cacheMock.get(oboTokenCacheKey) } returns expiredTokenString
128
+ justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
129
129
130
- it("azureAdClient returns new obo token when cached token is expired") {
131
- every { cacheMock.mapper } returns mapper
132
- every { cacheMock.get(oboTokenCacheKey) } returns expiredTokenString
133
- justRun { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
134
-
135
- runBlocking {
136
- azureAdClient.getOnBehalfOfToken(
137
- scopeClientId = scopeClientId,
138
- validToken,
139
- )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
140
- }
141
- verify(exactly = 1) { cacheMock.get(oboTokenCacheKey) }
142
- verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
130
+ runBlocking {
131
+ azureAdClient.getOnBehalfOfToken(
132
+ scopeClientId = scopeClientId,
133
+ validToken,
134
+ )?.accessToken shouldBeEqualTo AZUREAD_TOKEN
143
135
}
136
+ verify(exactly = 1) { cacheMock.get(oboTokenCacheKey) }
137
+ verify(exactly = 1) { cacheMock.setObject(any(), any() as AzureAdV2Token , any()) }
144
138
}
145
139
}
146
140
})
0 commit comments