From 4296c6a95eaf7c537ce7fffc7ba96be15ac55c27 Mon Sep 17 00:00:00 2001 From: Bart van Helvert Date: Fri, 10 Jun 2022 11:00:33 +0200 Subject: [PATCH] [jvm] Use real JUnit test data GitOrigin-RevId: dc5ebd84b479442960e8af91f34792d73f3aab44 --- .../JavaJUnitUnconstructableInspectionTest.kt | 2 +- ...t5AssertionsConverterInspectionTestBase.kt | 80 +++------------- .../JUnit5ConverterInspectionTestBase.kt | 94 +++---------------- .../test/junit/JUnitFrameWorkSetupUtil.kt | 7 ++ ...constructableTestCaseInspectionTestBase.kt | 48 +++------- 5 files changed, 46 insertions(+), 185 deletions(-) diff --git a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/test/junit/JavaJUnitUnconstructableInspectionTest.kt b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/test/junit/JavaJUnitUnconstructableInspectionTest.kt index 64274de0b8c4..a05ba8e91e5a 100644 --- a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/test/junit/JavaJUnitUnconstructableInspectionTest.kt +++ b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/test/junit/JavaJUnitUnconstructableInspectionTest.kt @@ -127,7 +127,7 @@ class JavaJUnitUnconstructableInspectionTest : JUnitUnconstructableTestCaseInspe import java.util.Arrays; import junit.framework.TestCase; import org.junit.runner.RunWith; - import org.junit.runner.Parameterized; + import org.junit.runners.Parameterized; import org.junit.Test; @RunWith(Parameterized.class) diff --git a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5AssertionsConverterInspectionTestBase.kt b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5AssertionsConverterInspectionTestBase.kt index 2d75ecb6664e..d3654d0db7d9 100644 --- a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5AssertionsConverterInspectionTestBase.kt +++ b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5AssertionsConverterInspectionTestBase.kt @@ -3,77 +3,23 @@ package com.intellij.codeInspection.tests.test.junit import com.intellij.codeInspection.test.junit.JUnit5AssertionsConverterInspection import com.intellij.codeInspection.tests.UastInspectionTestBase +import com.intellij.openapi.module.Module +import com.intellij.openapi.roots.ContentEntry +import com.intellij.openapi.roots.ModifiableRootModel +import com.intellij.pom.java.LanguageLevel +import com.intellij.testFramework.LightProjectDescriptor abstract class JUnit5AssertionsConverterInspectionTestBase : UastInspectionTestBase() { override val inspection = JUnit5AssertionsConverterInspection() - override fun setUp() { - super.setUp() - - // JUnit 4 - myFixture.addClass(""" - package org.hamcrest; - public interface Matcher{} - """.trimIndent()) - myFixture.addClass(""" - package org.hamcrest; - public class MatcherAssert{} - """.trimIndent()) - myFixture.addClass(""" - package org.junit; - - import org.hamcrest.Matcher; - - public class Assert { - public static void assertArrayEquals(Object[] expecteds, Object[] actuals) {} - public static void assertArrayEquals(String message, Object[] expecteds, Object[] actuals) {} - public static void assertTrue(String message, boolean condition) {} - public static void assertTrue(boolean condition) {} - public static void assertEquals(String message, Object expected, Object actual) {} - public static void assertEquals(Object expected, Object actual) {} - public static void fail() {} - public static void fail(String message) {} - public static void assertThat(String reason, T actual, Matcher matcher) {} - public static void assertNotEquals(double unexpected, double actual, double delta) {} + protected open class JUnitProjectDescriptor(languageLevel: LanguageLevel) : ProjectDescriptor(languageLevel) { + override fun configureModule(module: Module, model: ModifiableRootModel, contentEntry: ContentEntry) { + super.configureModule(module, model, contentEntry) + model.addJUnit4Library() + model.addHamcrest() + model.addJUnit5Library() } - """.trimIndent()) - myFixture.addClass(""" - package org.junit; - public class Assume { - public static void assumeTrue(boolean b) {} - public static void assumeTrue(String message, boolean b) {} - } - """.trimIndent()) - - // JUnit 5 - myFixture.addClass(""" - package org.junit.jupiter.api; - @org.junit.platform.commons.annotation.Testable - public @interface Test {} - """.trimIndent()) - myFixture.addClass(""" - package org.junit.platform.commons.annotation; - public @interface Testable {} - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public final class Assertions { - public static void assertArrayEquals(Object[] expected, Object[] actual) {} - public static void assertArrayEquals(Object[] expected, Object[] actual, String message) {} - public static void assertEquals(Object expected, Object actual) {} - public static void assertTrue(boolean expected) {} - public static void assertEquals(Object expected, Object actual, String message) {} - public static void assertTrue(Object expected, String message) {} - public static void fail(String message) {} - public static void fail() {} - } - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public class Assumptions { - public static void assumeTrue(boolean b) {} - public static void assumeTrue(boolean b, String message) {} - } - """.trimIndent()) } + + override fun getProjectDescriptor(): LightProjectDescriptor = JUnitProjectDescriptor(sdkLevel) } \ No newline at end of file diff --git a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5ConverterInspectionTestBase.kt b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5ConverterInspectionTestBase.kt index 9ea273fd383b..4af065aee101 100644 --- a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5ConverterInspectionTestBase.kt +++ b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnit5ConverterInspectionTestBase.kt @@ -3,92 +3,22 @@ package com.intellij.codeInspection.tests.test.junit import com.intellij.codeInspection.test.junit.JUnit5ConverterInspection import com.intellij.codeInspection.tests.UastInspectionTestBase +import com.intellij.openapi.module.Module +import com.intellij.openapi.roots.ContentEntry +import com.intellij.openapi.roots.ModifiableRootModel +import com.intellij.pom.java.LanguageLevel +import com.intellij.testFramework.LightProjectDescriptor abstract class JUnit5ConverterInspectionTestBase : UastInspectionTestBase() { override val inspection = JUnit5ConverterInspection() - override fun setUp() { - super.setUp() - // JUnit 4 - myFixture.addClass(""" - package org.junit; - public @interface Test {} - """.trimIndent()) - myFixture.addClass(""" - package org.hamcrest; - public interface Matcher{} - """.trimIndent()) - myFixture.addClass(""" - package org.hamcrest; - public class MatcherAssert{} - """.trimIndent()) - myFixture.addClass(""" - package org.junit; - - import org.hamcrest.Matcher; - - public class Assert { - public static void assertArrayEquals(Object[] expecteds, Object[] actuals) {} - public static void assertArrayEquals(String message, Object[] expecteds, Object[] actuals) {} - public static void assertTrue(String message, boolean condition) {} - public static void assertTrue(boolean condition) {} - public static void assertEquals(String message, Object expected, Object actual) {} - public static void assertEquals(Object expected, Object actual) {} - public static void fail() {} - public static void fail(String message) {} - public static void assertThat(String reason, T actual, Matcher matcher) {} - public static void assertNotEquals(double unexpected, double actual, double delta) {} + protected open class JUnitProjectDescriptor(languageLevel: LanguageLevel) : ProjectDescriptor(languageLevel) { + override fun configureModule(module: Module, model: ModifiableRootModel, contentEntry: ContentEntry) { + super.configureModule(module, model, contentEntry) + model.addJUnit4Library() + model.addJUnit5Library() } - """.trimIndent()) - myFixture.addClass(""" - package org.junit; - public class Assume { - public static void assumeTrue(boolean b) {} - public static void assumeTrue(String message, boolean b) {} - } - """.trimIndent()) - - // JUnit 5 - myFixture.addClass(""" - package org.junit.jupiter.api; - @org.junit.platform.commons.annotation.Testable - public @interface Test {} - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public @interface AfterEach {} - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public @interface BeforeAll {} - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public @interface BeforeEach {} - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public interface RepetitionInfo {} - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public final class Assertions { - public static void assertArrayEquals(Object[] expected, Object[] actual) {} - public static void assertArrayEquals(Object[] expected, Object[] actual, String message) {} - public static void assertEquals(Object expected, Object actual) {} - public static void assertTrue(boolean expected) {} - public static void assertEquals(Object expected, Object actual, String message) {} - public static void assertTrue(Object expected, String message) {} - public static void fail(String message) {} - public static void fail() {} - } - """.trimIndent()) - myFixture.addClass(""" - package org.junit.jupiter.api; - public class Assumptions { - public static void assumeTrue(boolean b) {} - public static void assumeTrue(boolean b, String message) {} - } - """.trimIndent()) } + + override fun getProjectDescriptor(): LightProjectDescriptor = JUnitProjectDescriptor(sdkLevel) } \ No newline at end of file diff --git a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitFrameWorkSetupUtil.kt b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitFrameWorkSetupUtil.kt index 9d182b3ef52e..0d5ae7ab4d50 100644 --- a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitFrameWorkSetupUtil.kt +++ b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitFrameWorkSetupUtil.kt @@ -16,9 +16,16 @@ internal fun ModifiableRootModel.addJUnit4Library() { PsiTestUtil.addLibrary(this, "junit4", jar.parent, jar.name) } +internal fun ModifiableRootModel.addHamcrest() { + val jar = File(PathUtil.getJarPathForClass(org.hamcrest.MatcherAssert::class.java)) + PsiTestUtil.addLibrary(this, "hamcrest-core", jar.parent, jar.name) +} + internal fun ModifiableRootModel.addJUnit5Library() { val jupiterJar = File(PathUtil.getJarPathForClass(org.junit.jupiter.api.Test::class.java)) PsiTestUtil.addLibrary(this, "junit5-jupiter", jupiterJar.parent, jupiterJar.name) val paramsJar = File(PathUtil.getJarPathForClass(org.junit.jupiter.params.ParameterizedTest::class.java)) PsiTestUtil.addLibrary(this, "junit5-params", paramsJar.parent, paramsJar.name) + val platformJar = File(PathUtil.getJarPathForClass(org.junit.platform.commons.annotation.Testable::class.java)) + PsiTestUtil.addLibrary(this, "junit-platform", platformJar.parent, platformJar.name) } \ No newline at end of file diff --git a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitUnconstructableTestCaseInspectionTestBase.kt b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitUnconstructableTestCaseInspectionTestBase.kt index 0aa20a0f4b1c..5de7be111cc3 100644 --- a/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitUnconstructableTestCaseInspectionTestBase.kt +++ b/jvm/jvm-analysis-tests/src/com/intellij/codeInspection/tests/test/junit/JUnitUnconstructableTestCaseInspectionTestBase.kt @@ -2,44 +2,22 @@ package com.intellij.codeInspection.tests.test.junit import com.intellij.codeInspection.test.junit.JUnitUnconstructableTestCaseInspection import com.intellij.codeInspection.tests.UastInspectionTestBase +import com.intellij.openapi.module.Module +import com.intellij.openapi.roots.ContentEntry +import com.intellij.openapi.roots.ModifiableRootModel +import com.intellij.pom.java.LanguageLevel +import com.intellij.testFramework.LightProjectDescriptor abstract class JUnitUnconstructableTestCaseInspectionTestBase : UastInspectionTestBase() { override val inspection = JUnitUnconstructableTestCaseInspection() - override fun setUp() { - super.setUp() - myFixture.addClass(""" - package junit.framework; - - public abstract class TestCase { } - """.trimIndent()) - myFixture.addClass(""" - package org.junit; - - public @interface Test { - Class expected() default Test.None.class; - } - """.trimIndent()) - myFixture.addClass(""" - package org.junit.runner; - - public abstract class Runner implements Describable { } - """.trimIndent()) - myFixture.addClass(""" - package org.junit.runner; - - public class Parameterized extends Runner { - public @interface Parameters { - String name() default "{index}"; - } - } - """.trimIndent()) - myFixture.addClass(""" - package org.junit.runner; - - public @interface RunWith { - Class value(); - } - """.trimIndent()) + protected open class JUnitProjectDescriptor(languageLevel: LanguageLevel) : ProjectDescriptor(languageLevel) { + override fun configureModule(module: Module, model: ModifiableRootModel, contentEntry: ContentEntry) { + super.configureModule(module, model, contentEntry) + model.addJUnit3Library() + model.addJUnit4Library() + } } + + override fun getProjectDescriptor(): LightProjectDescriptor = JUnitProjectDescriptor(sdkLevel) } \ No newline at end of file