Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class PluginResolver private constructor(callerStackTrace: Array<StackTraceEleme
* Sets a PluginResolver instance to a thread-local for the current thread.
* This value will be retrieved by subsequent calls to fromCurrentThread.
*/
fun setThreadLocal(value: PluginResolver) {
fun setThreadLocal(value: PluginResolver?) {
threadLocalResolver.set(value)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,25 @@ package software.aws.toolkits.jetbrains.services.telemetry
import com.intellij.ide.plugins.IdeaPluginDescriptor
import com.intellij.ide.plugins.PluginManagerCore
import io.mockk.called
import io.mockk.clearAllMocks
import io.mockk.every
import io.mockk.junit5.MockKExtension
import io.mockk.mockk
import io.mockk.mockkStatic
import io.mockk.verify
import junit.framework.TestCase.assertEquals
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.extension.ExtendWith
import software.amazon.awssdk.services.toolkittelemetry.model.AWSProduct

@ExtendWith(MockKExtension::class)
class PluginResolverTest {
@BeforeEach
fun setup() {
PluginResolver.setThreadLocal(null)
mockkStatic(PluginManagerCore::class)
}

@AfterEach
fun tearDown() {
clearAllMocks()
}

@Test
fun getsProductForAmazonQPlugin() {
val pluginDescriptor = mockk<IdeaPluginDescriptor> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import com.intellij.openapi.progress.ProgressManager
import com.intellij.testFramework.ApplicationRule
import com.intellij.util.concurrency.AppExecutorUtil
import io.mockk.every
import io.mockk.mockk
import io.mockk.impl.annotations.MockK
import io.mockk.junit4.MockKRule
import org.assertj.core.api.Assertions.assertThatThrownBy
import org.junit.Assert.assertEquals
import org.junit.Rule
Expand All @@ -26,6 +27,12 @@ class ThreadingUtilsKtTest {
@JvmField
val application = ApplicationRule()

@get:Rule
val mockkRule = MockKRule(this)

@MockK
private lateinit var pluginResolver: PluginResolver

@Test
fun `computeOnEdt runs on edt`() {
computeOnEdt {
Expand Down Expand Up @@ -78,13 +85,13 @@ class ThreadingUtilsKtTest {

@Test
fun `pluginAwareExecuteOnPooledThread inherits plugin resolver`() {
val pluginResolver = mockk<PluginResolver> {
every { product } returns AWSProduct.AMAZON_Q_FOR_JET_BRAINS
}
every { pluginResolver.product } returns AWSProduct.AMAZON_Q_FOR_JET_BRAINS
PluginResolver.setThreadLocal(pluginResolver)

pluginAwareExecuteOnPooledThread {
assertEquals(PluginResolver.fromCurrentThread().product, AWSProduct.AMAZON_Q_FOR_JET_BRAINS)
}.get()

PluginResolver.setThreadLocal(PluginResolver.fromStackTrace(Thread.currentThread().stackTrace))
}
}
Loading