open fun setup()

in plugins/amazonq/codetransform/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/codemodernizer/CodeWhispererCodeModernizerTestBase.kt [263:358]


    open fun setup() {
        project = projectRule.project
        toolkitConnectionManager = spy(ToolkitConnectionManager.getInstance(project))

        val accessToken = DeviceAuthorizationGrantToken(aString(), aString(), aString(), aString(), Instant.MAX, Instant.now())
        val provider =
            mock<BearerTokenProvider> {
                doReturn(accessToken).whenever(it).refresh()
            }
        val mockBearerProvider =
            mock<ToolkitBearerTokenProvider> {
                doReturn(provider).whenever(it).delegate
            }
        val connectionSettingsMock =
            mock<TokenConnectionSettings> {
                whenever(it.tokenProvider).thenReturn(mockBearerProvider)
            }
        val toolkitConnection =
            mock<AwsBearerTokenConnection> {
                doReturn(connectionSettingsMock).whenever(it).getConnectionSettings()
            }
        doReturn(toolkitConnection).whenever(toolkitConnectionManager).activeConnectionForFeature(any())
        project.replaceService(ToolkitConnectionManager::class.java, toolkitConnectionManager, disposableRule.disposable)
        telemetryManagerSpy = spy(CodeTransformTelemetryManager.getInstance(project))
        project.replaceService(CodeTransformTelemetryManager::class.java, telemetryManagerSpy, disposableRule.disposable)
        clientAdaptorSpy = spy(GumbyClient.getInstance(project))
        project.replaceService(GumbyClient::class.java, clientAdaptorSpy, disposableRule.disposable)
        testSessionStateSpy = spy(CodeModernizerSessionState.getInstance(project))
        project.replaceService(CodeModernizerSessionState::class.java, testSessionStateSpy, disposableRule.disposable)

        codeModernizerManagerSpy = spy(CodeModernizerManager.getInstance(project))
        module = project.modules.firstOrNull() ?: if (projectRule is HeavyJavaCodeInsightTestFixtureRule) {
            projectRule.fixture.addModule("module1")
        } else {
            TODO()
        }

        val virtualFileMock = Mockito.mock(VirtualFile::class.java)
        val summaryFileMock = Mockito.mock(File::class.java)
        val logFileMock = Mockito.mock(File::class.java)
        doReturn("dummy/path").whenever(virtualFileMock).path
        testSessionContextSpy = spy(
            CodeModernizerSessionContext(
                project,
                virtualFileMock,
                JavaSdkVersion.JDK_1_8,
                JavaSdkVersion.JDK_11,
                listOf("EXPLAINABILITY_V1", "SELECTIVE_TRANSFORMATION_V1"),
                "test"
            )
        )

        testSessionSpy = spy(CodeModernizerSession(testSessionContextSpy, 0, 0))
        doNothing().whenever(testSessionSpy).deleteUploadArtifact(any())
        doReturn(Job()).whenever(codeModernizerManagerSpy).launchModernizationJob(any(), any())
        testCodeModernizerArtifact =
            spy(
                CodeModernizerArtifact(
                    exampleZipPath.toAbsolutePath().toString(),
                    validManifest,
                    listOf(
                        minJDKUpgradePatchResourceFile,
                        enterpriseApplicationUpgradePatchResourceFile,
                        testingToolPatchResourceFile,
                        deprecatedAPIPatchResourceFile
                    ),
                    exampleDescriptionContent.content,
                    validTransformationSummary,
                    summaryFileMock,
                    validMetrics
                ),
            )
        testTransformFailureBuildLog =
            spy(
                CodeTransformFailureBuildLog(
                    logFileMock
                ),
            )

        // Set up the bottom tool window mocks
        testModernizerBottomWindowPanelSpy = spy(CodeModernizerBottomWindowPanelManager(project))
        toolWindowMock =
            spy(
                ToolWindowManager.getInstance(project).registerToolWindow(
                    RegisterToolWindowTask(
                        id = CodeModernizerBottomToolWindowFactory.id,
                    ),
                ),
            )
        doReturn(toolWindowMock).whenever(codeModernizerManagerSpy).getBottomToolWindow()
        doNothing().whenever(codeModernizerManagerSpy).notifyTransformationStopped()
        doNothing().whenever(codeModernizerManagerSpy).notifyTransformationStartStopping()
        doNothing().whenever(codeModernizerManagerSpy).notifyTransformationFailedToStop()
        doReturn(Path("/test/pom.xml")).whenever(emptyPomFileSpy).toNioPath()
        validJDK8CustomerSelection = CustomerSelection(emptyPomFileSpy, JavaSdkVersion.JDK_1_8, JavaSdkVersion.JDK_17)
    }