Add psi tests with the simplest test data

This commit is contained in:
Vitaliy.Bibaev
2017-10-14 19:15:02 +03:00
committed by Yan Zhulanow
parent 5fe0f167ca
commit 310bcc48a5
7 changed files with 105 additions and 0 deletions
@@ -0,0 +1,6 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
val a<caret> = 100
Stream.of(1, 2, 3).toArray()
}
@@ -0,0 +1,5 @@
import java.util.stream.Stream
fun main(args: Array<String>) {
Stream.of(1, 2, 3).toAr<caret>ray()
}
@@ -0,0 +1,5 @@
import one.util.streamex.StreamEx
fun main(args: Array<String>) {
StreamEx.of(1, 2, 3).to<caret>Array()
}
@@ -0,0 +1,41 @@
package com.intellij.debugger.streams.kotlin
import com.intellij.debugger.streams.test.StreamChainBuilderTestCase
import com.intellij.debugger.streams.wrapper.StreamChain
import com.intellij.debugger.streams.wrapper.StreamChainBuilder
import junit.framework.TestCase
import java.io.File
import java.nio.file.Paths
/**
* @author Vitaliy.Bibaev
*/
abstract class KotlinPsiChainBuilderTestCase(private val relativePath: String) : StreamChainBuilderTestCase() {
override fun getTestDataPath(): String = Paths.get(File("").absolutePath, "/testData/psi/$relativeTestPath/").toString()
override fun getFileExtension(): String = ".kt"
abstract val kotlinChainBuilder: StreamChainBuilder
override final fun getChainBuilder(): StreamChainBuilder = kotlinChainBuilder
protected abstract fun doTest()
override final fun getRelativeTestPath(): String = relativePath
abstract class Positive(relativePath: String) : KotlinPsiChainBuilderTestCase(relativePath) {
override fun doTest() {
val chains = buildChains()
checkChains(chains)
}
protected fun checkChains(chains: MutableList<StreamChain>) {
TestCase.assertFalse(chains.isEmpty())
}
}
abstract class Negative(relativePath: String) : KotlinPsiChainBuilderTestCase(relativePath) {
override fun doTest() {
val elementAtCaret = configureAndGetElementAtCaret()
TestCase.assertFalse(chainBuilder.isChainExists(elementAtCaret))
}
}
}
@@ -0,0 +1,16 @@
package com.intellij.debugger.streams.kotlin.psi.java
import com.intellij.debugger.streams.kotlin.KotlinPsiChainBuilderTestCase
import com.intellij.debugger.streams.kotlin.lib.JavaStandardLibrarySupportProvider
import com.intellij.debugger.streams.wrapper.StreamChainBuilder
/**
* @author Vitaliy.Bibaev
*/
class NegativeJavaStreamTest : KotlinPsiChainBuilderTestCase.Negative("streams/negative") {
override val kotlinChainBuilder: StreamChainBuilder = JavaStandardLibrarySupportProvider().chainBuilder
fun testSimple() {
doTest()
}
}
@@ -0,0 +1,16 @@
package com.intellij.debugger.streams.kotlin.psi.java
import com.intellij.debugger.streams.kotlin.KotlinPsiChainBuilderTestCase
import com.intellij.debugger.streams.kotlin.lib.JavaStandardLibrarySupportProvider
import com.intellij.debugger.streams.wrapper.StreamChainBuilder
/**
* @author Vitaliy.Bibaev
*/
class PositiveJavaStreamTest : KotlinPsiChainBuilderTestCase.Positive("streams/positive") {
override val kotlinChainBuilder: StreamChainBuilder = JavaStandardLibrarySupportProvider().chainBuilder
fun testSimple() {
doTest()
}
}
@@ -0,0 +1,16 @@
package com.intellij.debugger.streams.kotlin.psi.java
import com.intellij.debugger.streams.kotlin.KotlinPsiChainBuilderTestCase
import com.intellij.debugger.streams.kotlin.lib.StreamExLibrarySupportProvider
import com.intellij.debugger.streams.wrapper.StreamChainBuilder
/**
* @author Vitaliy.Bibaev
*/
class PositiveStreamExTest : KotlinPsiChainBuilderTestCase.Positive("streams/positive/streamex") {
override val kotlinChainBuilder: StreamChainBuilder = StreamExLibrarySupportProvider().chainBuilder
fun testSimple() {
doTest()
}
}