Skip to content

Commit 4352800

Browse files
committed
same mockk framework
1 parent ee69990 commit 4352800

File tree

1 file changed

+31
-39
lines changed

1 file changed

+31
-39
lines changed

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/core/credentials/ToolkitAuthManagerTest.kt

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,22 @@
44
package software.aws.toolkits.jetbrains.core.credentials
55

66

7+
import com.intellij.notification.Notifications
78
import com.intellij.openapi.project.Project
89
import com.intellij.testFramework.ApplicationExtension
10+
import com.intellij.util.messages.MessageBus
911
import io.mockk.every
1012
import io.mockk.just
13+
import io.mockk.mockk
1114
import io.mockk.mockkObject
1215
import io.mockk.mockkStatic
1316
import io.mockk.runs
1417
import io.mockk.verify
15-
import io.mockk.every
16-
import io.mockk.mockk
17-
import io.mockk.clearAllMocks
18-
import org.junit.jupiter.api.Assertions.assertFalse
1918
import org.junit.jupiter.api.Assertions.assertEquals
2019
import org.junit.jupiter.api.BeforeEach
2120
import org.junit.jupiter.api.Test
2221
import org.junit.jupiter.api.TestInstance
2322
import org.junit.jupiter.api.extension.ExtendWith
24-
import org.mockito.kotlin.doThrow
25-
import org.mockito.kotlin.given
26-
import org.mockito.kotlin.mock
27-
import org.mockito.kotlin.reset
28-
import org.mockito.kotlin.whenever
2923
import software.aws.toolkits.jetbrains.core.credentials.sso.DeviceAuthorizationGrantToken
3024
import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenAuthState
3125
import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenProvider
@@ -45,11 +39,22 @@ class ToolkitAuthManagerTest {
4539

4640
@BeforeEach
4741
fun setUp() {
48-
project = mock()
49-
tokenProvider = mock()
42+
project = mockk()
43+
tokenProvider = mockk()
5044
reauthCallCount = 0
5145

46+
// Mock MessageBus and Notifications
47+
val messageBus = mockk<MessageBus>(relaxed = true)
48+
val notificationsPublisher = mockk<Notifications>(relaxed = true)
5249

50+
every { project.messageBus } returns messageBus
51+
every { messageBus.syncPublisher(Notifications.TOPIC) } returns notificationsPublisher
52+
every { notificationsPublisher.notify(any()) } just runs
53+
54+
// Mock BearerTokenProvider methods
55+
every { tokenProvider.id } returns "mockProviderId"
56+
57+
// Mock static method
5358
mockkObject(BearerTokenProviderListener)
5459
mockkStatic("software.aws.toolkits.jetbrains.utils.NotificationUtilsKt")
5560
every {
@@ -61,10 +66,8 @@ class ToolkitAuthManagerTest {
6166

6267
@Test
6368
fun `test NEEDS_REFRESH state with network error - first occurrence`() {
64-
whenever(tokenProvider.state()).thenReturn(BearerTokenAuthState.NEEDS_REFRESH)
65-
given(tokenProvider.resolveToken()).willAnswer {
66-
throw UnknownHostException("Unable to execute HTTP request")
67-
}
69+
every { tokenProvider.state() } returns BearerTokenAuthState.NEEDS_REFRESH
70+
every { tokenProvider.resolveToken() } throws UnknownHostException("Unable to execute HTTP request")
6871

6972
try {
7073
maybeReauthProviderIfNeeded(
@@ -87,10 +90,8 @@ class ToolkitAuthManagerTest {
8790

8891
@Test
8992
fun `test NEEDS_REFRESH state with network error - subsequent occurrence`() {
90-
whenever(tokenProvider.state()).thenReturn(BearerTokenAuthState.NEEDS_REFRESH)
91-
given(tokenProvider.resolveToken()).willAnswer {
92-
throw UnknownHostException("Unable to execute HTTP request")
93-
}
93+
every { tokenProvider.state() } returns BearerTokenAuthState.NEEDS_REFRESH
94+
every { tokenProvider.resolveToken() } throws UnknownHostException("Unable to execute HTTP request")
9495

9596
// First call to set the internal flag
9697
try {
@@ -126,12 +127,10 @@ class ToolkitAuthManagerTest {
126127

127128
@Test
128129
fun `test successful refresh clears notification flag`() {
129-
whenever(tokenProvider.state()).thenReturn(BearerTokenAuthState.NEEDS_REFRESH)
130+
every { tokenProvider.state() } returns BearerTokenAuthState.NEEDS_REFRESH
130131

131132
// First trigger a network error
132-
given(tokenProvider.resolveToken()).willAnswer {
133-
throw UnknownHostException("Unable to execute HTTP request")
134-
}
133+
every { tokenProvider.resolveToken() } throws UnknownHostException("Unable to execute HTTP request")
135134

136135
try {
137136
maybeReauthProviderIfNeeded(
@@ -143,31 +142,24 @@ class ToolkitAuthManagerTest {
143142
// ignore
144143
}
145144

146-
reset(tokenProvider)
147-
148145
// Now simulate successful refresh
149-
whenever(tokenProvider.state()).thenReturn(BearerTokenAuthState.NEEDS_REFRESH)
150-
whenever(tokenProvider.resolveToken()).thenReturn(
151-
DeviceAuthorizationGrantToken(
152-
startUrl = "https://example.com",
153-
region = "us-east-1",
154-
accessToken = "testAccessToken",
155-
refreshToken = "testRefreshToken",
156-
expiresAt = Instant.now().plus(1, ChronoUnit.HOURS),
157-
)
146+
every { tokenProvider.state() } returns BearerTokenAuthState.NEEDS_REFRESH
147+
every { tokenProvider.resolveToken() } returns DeviceAuthorizationGrantToken(
148+
startUrl = "https://example.com",
149+
region = "us-east-1",
150+
accessToken = "testAccessToken",
151+
refreshToken = "testRefreshToken",
152+
expiresAt = Instant.now().plus(1, ChronoUnit.HOURS),
158153
)
159154
maybeReauthProviderIfNeeded(
160155
project,
161156
ReauthSource.TOOLKIT,
162157
tokenProvider
163158
) { _ -> reauthCallCount++ }
164159

165-
reset(tokenProvider)
166160
// Now trigger another network error - should show notification again
167-
whenever(tokenProvider.state()).thenReturn(BearerTokenAuthState.NEEDS_REFRESH)
168-
given(tokenProvider.resolveToken()).willAnswer {
169-
throw UnknownHostException("Unable to execute HTTP request")
170-
}
161+
every { tokenProvider.state() } returns BearerTokenAuthState.NEEDS_REFRESH
162+
every { tokenProvider.resolveToken() } throws UnknownHostException("Unable to execute HTTP request")
171163
try {
172164
maybeReauthProviderIfNeeded(
173165
project,

0 commit comments

Comments
 (0)