Skip to content

Commit e4357bd

Browse files
committed
fix test failure caused by NotAMock error
1 parent 5fa8e42 commit e4357bd

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

plugins/core/jetbrains-community/resources/META-INF/aws.toolkit.core.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@
2626
serviceImplementation="software.aws.toolkits.jetbrains.core.credentials.DefaultCredentialManager"
2727
testServiceImplementation="software.aws.toolkits.jetbrains.core.credentials.MockCredentialsManager"/>
2828
<applicationService serviceInterface="migration.software.aws.toolkits.jetbrains.services.telemetry.TelemetryService"
29-
serviceImplementation="software.aws.toolkits.jetbrains.services.telemetry.DefaultTelemetryService"
30-
testServiceImplementation="software.aws.toolkits.jetbrains.services.telemetry.NoOpTelemetryService"/>
29+
serviceImplementation="software.aws.toolkits.jetbrains.services.telemetry.DefaultTelemetryService"/>
3130
<applicationService serviceInterface="migration.software.aws.toolkits.jetbrains.core.AwsResourceCache"
3231
serviceImplementation="software.aws.toolkits.jetbrains.core.DefaultAwsResourceCache"
3332
testServiceImplementation="software.aws.toolkits.jetbrains.core.MockResourceCache"/>

plugins/core/jetbrains-community/tstFixtures/software/aws/toolkits/jetbrains/services/telemetry/MockTelemetryService.kt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
package software.aws.toolkits.jetbrains.services.telemetry
55

6-
import com.intellij.openapi.components.service
6+
import com.intellij.openapi.application.ApplicationManager
7+
import com.intellij.testFramework.replaceService
78
import org.junit.jupiter.api.extension.AfterEachCallback
89
import org.junit.jupiter.api.extension.BeforeEachCallback
910
import org.junit.jupiter.api.extension.ExtensionContext
@@ -13,14 +14,11 @@ import org.mockito.kotlin.spy
1314
import software.amazon.awssdk.services.toolkittelemetry.model.Sentiment
1415
import software.aws.toolkits.core.telemetry.DefaultTelemetryBatcher
1516
import software.aws.toolkits.core.telemetry.MetricEvent
17+
import software.aws.toolkits.core.telemetry.TelemetryBatcher
1618
import software.aws.toolkits.core.telemetry.TelemetryPublisher
1719

18-
class NoOpTelemetryService : TelemetryService(publisher, spy(DefaultTelemetryBatcher(publisher))) {
20+
class NoOpTelemetryService(noOpPublisher: NoOpPublisher, batcher: TelemetryBatcher) : TelemetryService(noOpPublisher, batcher) {
1921
fun batcher() = super.batcher
20-
21-
private companion object {
22-
private val publisher: TelemetryPublisher by lazy { NoOpPublisher() }
23-
}
2422
}
2523

2624
class NoOpPublisher : TelemetryPublisher {
@@ -32,8 +30,14 @@ class NoOpPublisher : TelemetryPublisher {
3230
}
3331

3432
sealed class MockTelemetryServiceBase : ExternalResource() {
35-
private val mockTelemetryService: NoOpTelemetryService
36-
get() = service<TelemetryService>() as NoOpTelemetryService
33+
private val publisher: NoOpPublisher by lazy { NoOpPublisher() }
34+
private val batcher: TelemetryBatcher by lazy { spy(DefaultTelemetryBatcher(publisher)) }
35+
36+
private val mockTelemetryService: NoOpTelemetryService by lazy { NoOpTelemetryService(publisher, batcher) }
37+
38+
override fun before() {
39+
ApplicationManager.getApplication().replaceService(TelemetryService::class.java, mockTelemetryService, mockTelemetryService)
40+
}
3741

3842
override fun after() {
3943
reset(batcher())

0 commit comments

Comments
 (0)