diff --git a/pom.xml b/pom.xml index a11a74a7..79fe3c38 100644 --- a/pom.xml +++ b/pom.xml @@ -181,9 +181,9 @@ under the License. test - junit - junit - 4.13.2 + org.junit.jupiter + junit-jupiter-engine + 5.9.1 test diff --git a/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTest.java b/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTest.java new file mode 100644 index 00000000..8d852ba1 --- /dev/null +++ b/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTest.java @@ -0,0 +1,301 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.plugin.compiler; + +import java.io.File; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; + +import org.apache.maven.artifact.Artifact; +import org.apache.maven.plugin.compiler.stubs.CompilerManagerStub; +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.plugin.testing.junit5.InjectMojo; +import org.apache.maven.plugin.testing.junit5.MojoTest; +import org.apache.maven.plugin.testing.stubs.ArtifactStub; +import org.junit.jupiter.api.Test; + +import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMavenProject; +import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMavenSession; +import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMojoExecution; +import static org.apache.maven.plugin.compiler.MojoTestUtils.getVariableValueFromObject; +import static org.apache.maven.plugin.compiler.MojoTestUtils.setVariableValueToObject; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.startsWith; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +@MojoTest +class CompilerMojoTest { + + private static final String COMPILE = "compile"; + + /** + * tests the ability of the plugin to compile a basic file + * + * @throws Exception + */ + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-basic-test/plugin-config.xml") + void testCompilerBasic(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + Log log = mock(Log.class); + + compilerMojo.setLog(log); + + setVariableValueToObject(compilerMojo, "targetOrReleaseSet", false); + compilerMojo.execute(); + + Artifact projectArtifact = getVariableValueFromObject(compilerMojo, "projectArtifact"); + assertNotNull( + projectArtifact.getFile(), + "MCOMPILER-94: artifact file should only be null if there is nothing to compile"); + + File testClass = new File(compilerMojo.getOutputDirectory(), "foo/TestCompile0.class"); + + verify(log).warn(startsWith("No explicit value set for target or release!")); + + assertTrue(testClass::exists); + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-basic-sourcetarget/plugin-config.xml") + void testCompilerBasicSourceTarget(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + Log log = mock(Log.class); + + compilerMojo.setLog(log); + + compilerMojo.execute(); + + verify(log, never()).warn(startsWith("No explicit value set for target or release!")); + } + + /** + * tests the ability of the plugin to respond to empty source + * + * @throws Exception + */ + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-empty-source-test/plugin-config.xml") + void testCompilerEmptySource(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + compilerMojo.execute(); + + assertFalse(compilerMojo.getOutputDirectory().exists()); + + Artifact projectArtifact = getVariableValueFromObject(compilerMojo, "projectArtifact"); + assertNull( + projectArtifact.getFile(), "MCOMPILER-94: artifact file should be null if there is nothing to compile"); + } + + /** + * tests the ability of the plugin to respond to includes and excludes correctly + * + * @throws Exception + */ + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-includes-excludes-test/plugin-config.xml") + void testCompilerIncludesExcludes(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + Set includes = new HashSet<>(); + includes.add("**/TestCompile4*.java"); + setVariableValueToObject(compilerMojo, "includes", includes); + + Set excludes = new HashSet<>(); + excludes.add("**/TestCompile2*.java"); + excludes.add("**/TestCompile3*.java"); + setVariableValueToObject(compilerMojo, "excludes", excludes); + + compilerMojo.execute(); + + File testClass = new File(compilerMojo.getOutputDirectory(), "foo/TestCompile2.class"); + assertFalse(testClass.exists()); + + testClass = new File(compilerMojo.getOutputDirectory(), "foo/TestCompile3.class"); + assertFalse(testClass.exists()); + + testClass = new File(compilerMojo.getOutputDirectory(), "foo/TestCompile4.class"); + assertTrue(testClass.exists()); + } + + /** + * tests the ability of the plugin to fork and successfully compile + * + * @throws Exception + */ + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-fork-test/plugin-config.xml") + void testCompilerFork(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + // JAVA_HOME doesn't have to be on the PATH. + setVariableValueToObject( + compilerMojo, "executable", new File(System.getenv("JAVA_HOME"), "bin/javac").getPath()); + + compilerMojo.execute(); + + File testClass = new File(compilerMojo.getOutputDirectory(), "foo/TestCompile1.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-one-output-file-test/plugin-config.xml") + void testOneOutputFileForAllInput(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + setVariableValueToObject(compilerMojo, "compilerManager", new CompilerManagerStub()); + + compilerMojo.execute(); + + File testClass = new File(compilerMojo.getOutputDirectory(), "compiled.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-args-test/plugin-config.xml") + void testCompilerArgs(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + setVariableValueToObject(compilerMojo, "compilerManager", new CompilerManagerStub()); + + compilerMojo.execute(); + + File testClass = new File(compilerMojo.getOutputDirectory(), "compiled.class"); + assertTrue(testClass.exists()); + assertEquals( + Arrays.asList("key1=value1", "-Xlint", "-my&special:param-with+chars/not>allowed_in_XML_element_names"), + compilerMojo.compilerArgs); + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-implicit-test/plugin-config-none.xml") + void testImplicitFlagNone(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + assertEquals("none", compilerMojo.getImplicit()); + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-implicit-test/plugin-config-not-set.xml") + void testImplicitFlagNotSet(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + assertNull(compilerMojo.getImplicit()); + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-one-output-file-test2/plugin-config.xml") + void testOneOutputFileForAllInput2(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + setVariableValueToObject(compilerMojo, "compilerManager", new CompilerManagerStub()); + + Set includes = new HashSet<>(); + includes.add("**/TestCompile4*.java"); + setVariableValueToObject(compilerMojo, "includes", includes); + + Set excludes = new HashSet<>(); + excludes.add("**/TestCompile2*.java"); + excludes.add("**/TestCompile3*.java"); + setVariableValueToObject(compilerMojo, "excludes", excludes); + + compilerMojo.execute(); + + File testClass = new File(compilerMojo.getOutputDirectory(), "compiled.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-fail-test/plugin-config.xml") + void testCompileFailure(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + setVariableValueToObject(compilerMojo, "compilerManager", new CompilerManagerStub(true)); + + try { + compilerMojo.execute(); + + fail("Should throw an exception"); + } catch (CompilationFailureException e) { + // expected + } + } + + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-failonerror-test/plugin-config.xml") + void testCompileFailOnError(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + setVariableValueToObject(compilerMojo, "compilerManager", new CompilerManagerStub(true)); + + try { + compilerMojo.execute(); + assertTrue(true); + } catch (CompilationFailureException e) { + fail("The compilation error should have been consumed because failOnError = false"); + } + } + + /** + * Tests that setting 'skipMain' to true skips compilation of the main Java source files, but that test Java source + * files are still compiled. + * @throws Exception + */ + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-skip-main/plugin-config.xml") + void testCompileSkipMain(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + setVariableValueToObject(compilerMojo, "skipMain", true); + compilerMojo.execute(); + File testClass = new File(compilerMojo.getOutputDirectory(), "foo/TestSkipMainCompile0.class"); + assertFalse(testClass.exists()); + } + + /** + * Tests that setting 'skip' to true skips compilation of the test Java source files, but that main Java source + * files are still compiled. + * @throws Exception + */ + @Test + @InjectMojo(goal = COMPILE, pom = "classpath:/unit/compiler-skip-test/plugin-config.xml") + void testCompileSkipTest(CompilerMojo compilerMojo) throws Exception { + setUpCompilerMojoTestEnv(compilerMojo); + + compilerMojo.execute(); + + File testClass = new File(compilerMojo.getOutputDirectory(), "foo/TestSkipTestCompile0.class"); + assertTrue(testClass.exists()); + } + + private void setUpCompilerMojoTestEnv(CompilerMojo mojo) throws Exception { + setVariableValueToObject(mojo, "projectArtifact", new ArtifactStub()); + setVariableValueToObject(mojo, "compilePath", Collections.EMPTY_LIST); + setVariableValueToObject(mojo, "session", getMockMavenSession()); + setVariableValueToObject(mojo, "project", getMockMavenProject()); + setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution()); + setVariableValueToObject(mojo, "source", AbstractCompilerMojo.DEFAULT_SOURCE); + setVariableValueToObject(mojo, "target", AbstractCompilerMojo.DEFAULT_TARGET); + } +} diff --git a/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java b/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java deleted file mode 100644 index db723079..00000000 --- a/src/test/java/org/apache/maven/plugin/compiler/CompilerMojoTestCase.java +++ /dev/null @@ -1,440 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.maven.plugin.compiler; - -import java.io.File; -import java.net.URI; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.apache.maven.artifact.Artifact; -import org.apache.maven.artifact.handler.ArtifactHandler; -import org.apache.maven.execution.MavenSession; -import org.apache.maven.plugin.MojoExecution; -import org.apache.maven.plugin.compiler.stubs.CompilerManagerStub; -import org.apache.maven.plugin.compiler.stubs.DebugEnabledLog; -import org.apache.maven.plugin.descriptor.MojoDescriptor; -import org.apache.maven.plugin.descriptor.PluginDescriptor; -import org.apache.maven.plugin.logging.Log; -import org.apache.maven.plugin.testing.AbstractMojoTestCase; -import org.apache.maven.plugin.testing.stubs.ArtifactStub; -import org.apache.maven.project.MavenProject; - -import static org.mockito.ArgumentMatchers.startsWith; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CompilerMojoTestCase extends AbstractMojoTestCase { - - /** - * tests the ability of the plugin to compile a basic file - * - * @throws Exception - */ - public void testCompilerBasic() throws Exception { - CompilerMojo compileMojo = getCompilerMojo("target/test-classes/unit/compiler-basic-test/plugin-config.xml"); - - Log log = mock(Log.class); - - compileMojo.setLog(log); - - compileMojo.execute(); - - File testClass = new File(compileMojo.getOutputDirectory(), "foo/TestCompile0.class"); - - assertTrue(testClass.exists()); - - TestCompilerMojo testCompileMojo = - getTestCompilerMojo(compileMojo, "target/test-classes/unit/compiler-basic-test/plugin-config.xml"); - - testCompileMojo.execute(); - - Artifact projectArtifact = (Artifact) getVariableValueFromObject(compileMojo, "projectArtifact"); - assertNotNull( - "MCOMPILER-94: artifact file should only be null if there is nothing to compile", - projectArtifact.getFile()); - - testClass = new File(testCompileMojo.getOutputDirectory(), "foo/TestCompile0Test.class"); - - verify(log).warn(startsWith("No explicit value set for target or release!")); - - assertTrue(testClass.exists()); - } - - public void testCompilerBasicSourceTarget() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-basic-sourcetarget/plugin-config.xml"); - - Log log = mock(Log.class); - - compileMojo.setLog(log); - - compileMojo.execute(); - - verify(log, never()).warn(startsWith("No explicit value set for target or release!")); - } - - /** - * tests the ability of the plugin to respond to empty source - * - * @throws Exception - */ - public void testCompilerEmptySource() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-empty-source-test/plugin-config.xml"); - - compileMojo.execute(); - - assertFalse(compileMojo.getOutputDirectory().exists()); - - Artifact projectArtifact = (Artifact) getVariableValueFromObject(compileMojo, "projectArtifact"); - assertNull( - "MCOMPILER-94: artifact file should be null if there is nothing to compile", projectArtifact.getFile()); - - TestCompilerMojo testCompileMojo = getTestCompilerMojo( - compileMojo, "target/test-classes/unit/compiler-empty-source-test/plugin-config.xml"); - - testCompileMojo.execute(); - - assertFalse(testCompileMojo.getOutputDirectory().exists()); - } - - /** - * tests the ability of the plugin to respond to includes and excludes correctly - * - * @throws Exception - */ - public void testCompilerIncludesExcludes() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-includes-excludes-test/plugin-config.xml"); - - Set includes = new HashSet<>(); - includes.add("**/TestCompile4*.java"); - setVariableValueToObject(compileMojo, "includes", includes); - - Set excludes = new HashSet<>(); - excludes.add("**/TestCompile2*.java"); - excludes.add("**/TestCompile3*.java"); - setVariableValueToObject(compileMojo, "excludes", excludes); - - compileMojo.execute(); - - File testClass = new File(compileMojo.getOutputDirectory(), "foo/TestCompile2.class"); - assertFalse(testClass.exists()); - - testClass = new File(compileMojo.getOutputDirectory(), "foo/TestCompile3.class"); - assertFalse(testClass.exists()); - - testClass = new File(compileMojo.getOutputDirectory(), "foo/TestCompile4.class"); - assertTrue(testClass.exists()); - - TestCompilerMojo testCompileMojo = getTestCompilerMojo( - compileMojo, "target/test-classes/unit/compiler-includes-excludes-test/plugin-config.xml"); - - setVariableValueToObject(testCompileMojo, "testIncludes", includes); - setVariableValueToObject(testCompileMojo, "testExcludes", excludes); - - testCompileMojo.execute(); - - testClass = new File(testCompileMojo.getOutputDirectory(), "foo/TestCompile2TestCase.class"); - assertFalse(testClass.exists()); - - testClass = new File(testCompileMojo.getOutputDirectory(), "foo/TestCompile3TestCase.class"); - assertFalse(testClass.exists()); - - testClass = new File(testCompileMojo.getOutputDirectory(), "foo/TestCompile4TestCase.class"); - assertTrue(testClass.exists()); - } - - /** - * tests the ability of the plugin to fork and successfully compile - * - * @throws Exception - */ - public void testCompilerFork() throws Exception { - CompilerMojo compileMojo = getCompilerMojo("target/test-classes/unit/compiler-fork-test/plugin-config.xml"); - - // JAVA_HOME doesn't have to be on the PATH. - setVariableValueToObject( - compileMojo, "executable", new File(System.getenv("JAVA_HOME"), "bin/javac").getPath()); - - compileMojo.execute(); - - File testClass = new File(compileMojo.getOutputDirectory(), "foo/TestCompile1.class"); - assertTrue(testClass.exists()); - - TestCompilerMojo testCompileMojo = - getTestCompilerMojo(compileMojo, "target/test-classes/unit/compiler-fork-test/plugin-config.xml"); - - // JAVA_HOME doesn't have to be on the PATH. - setVariableValueToObject( - testCompileMojo, "executable", new File(System.getenv("JAVA_HOME"), "bin/javac").getPath()); - - testCompileMojo.execute(); - - testClass = new File(testCompileMojo.getOutputDirectory(), "foo/TestCompile1TestCase.class"); - assertTrue(testClass.exists()); - } - - public void testOneOutputFileForAllInput() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-one-output-file-test/plugin-config.xml"); - - setVariableValueToObject(compileMojo, "compilerManager", new CompilerManagerStub()); - - compileMojo.execute(); - - File testClass = new File(compileMojo.getOutputDirectory(), "compiled.class"); - assertTrue(testClass.exists()); - - TestCompilerMojo testCompileMojo = getTestCompilerMojo( - compileMojo, "target/test-classes/unit/compiler-one-output-file-test/plugin-config.xml"); - - setVariableValueToObject(testCompileMojo, "compilerManager", new CompilerManagerStub()); - - testCompileMojo.execute(); - - testClass = new File(testCompileMojo.getOutputDirectory(), "compiled.class"); - assertTrue(testClass.exists()); - } - - public void testCompilerArgs() throws Exception { - CompilerMojo compileMojo = getCompilerMojo("target/test-classes/unit/compiler-args-test/plugin-config.xml"); - - setVariableValueToObject(compileMojo, "compilerManager", new CompilerManagerStub()); - - compileMojo.execute(); - - File testClass = new File(compileMojo.getOutputDirectory(), "compiled.class"); - assertTrue(testClass.exists()); - assertEquals( - Arrays.asList("key1=value1", "-Xlint", "-my&special:param-with+chars/not>allowed_in_XML_element_names"), - compileMojo.compilerArgs); - } - - public void testImplicitFlagNone() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-implicit-test/plugin-config-none.xml"); - - assertEquals("none", compileMojo.getImplicit()); - } - - public void testImplicitFlagNotSet() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-implicit-test/plugin-config-not-set.xml"); - - assertNull(compileMojo.getImplicit()); - } - - public void testOneOutputFileForAllInput2() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-one-output-file-test2/plugin-config.xml"); - - setVariableValueToObject(compileMojo, "compilerManager", new CompilerManagerStub()); - - Set includes = new HashSet<>(); - includes.add("**/TestCompile4*.java"); - setVariableValueToObject(compileMojo, "includes", includes); - - Set excludes = new HashSet<>(); - excludes.add("**/TestCompile2*.java"); - excludes.add("**/TestCompile3*.java"); - setVariableValueToObject(compileMojo, "excludes", excludes); - - compileMojo.execute(); - - File testClass = new File(compileMojo.getOutputDirectory(), "compiled.class"); - assertTrue(testClass.exists()); - - TestCompilerMojo testCompileMojo = getTestCompilerMojo( - compileMojo, "target/test-classes/unit/compiler-one-output-file-test2/plugin-config.xml"); - - setVariableValueToObject(testCompileMojo, "compilerManager", new CompilerManagerStub()); - setVariableValueToObject(testCompileMojo, "testIncludes", includes); - setVariableValueToObject(testCompileMojo, "testExcludes", excludes); - - testCompileMojo.execute(); - - testClass = new File(testCompileMojo.getOutputDirectory(), "compiled.class"); - assertTrue(testClass.exists()); - } - - public void testCompileFailure() throws Exception { - CompilerMojo compileMojo = getCompilerMojo("target/test-classes/unit/compiler-fail-test/plugin-config.xml"); - - setVariableValueToObject(compileMojo, "compilerManager", new CompilerManagerStub(true)); - - try { - compileMojo.execute(); - - fail("Should throw an exception"); - } catch (CompilationFailureException e) { - // expected - } - } - - public void testCompileFailOnError() throws Exception { - CompilerMojo compileMojo = - getCompilerMojo("target/test-classes/unit/compiler-failonerror-test/plugin-config.xml"); - - setVariableValueToObject(compileMojo, "compilerManager", new CompilerManagerStub(true)); - - try { - compileMojo.execute(); - assertTrue(true); - } catch (CompilationFailureException e) { - fail("The compilation error should have been consumed because failOnError = false"); - } - } - - /** - * Tests that setting 'skipMain' to true skips compilation of the main Java source files, but that test Java source - * files are still compiled. - * @throws Exception - */ - public void testCompileSkipMain() throws Exception { - CompilerMojo compileMojo = getCompilerMojo("target/test-classes/unit/compiler-skip-main/plugin-config.xml"); - setVariableValueToObject(compileMojo, "skipMain", true); - compileMojo.execute(); - File testClass = new File(compileMojo.getOutputDirectory(), "foo/TestSkipMainCompile0.class"); - assertFalse(testClass.exists()); - - TestCompilerMojo testCompileMojo = - getTestCompilerMojo(compileMojo, "target/test-classes/unit/compiler-skip-main/plugin-config.xml"); - testCompileMojo.execute(); - testClass = new File(testCompileMojo.getOutputDirectory(), "foo/TestSkipMainCompile0Test.class"); - assertTrue(testClass.exists()); - } - - /** - * Tests that setting 'skip' to true skips compilation of the test Java source files, but that main Java source - * files are still compiled. - * @throws Exception - */ - public void testCompileSkipTest() throws Exception { - CompilerMojo compileMojo = getCompilerMojo("target/test-classes/unit/compiler-skip-test/plugin-config.xml"); - compileMojo.execute(); - File testClass = new File(compileMojo.getOutputDirectory(), "foo/TestSkipTestCompile0.class"); - assertTrue(testClass.exists()); - - TestCompilerMojo testCompileMojo = - getTestCompilerMojo(compileMojo, "target/test-classes/unit/compiler-skip-test/plugin-config.xml"); - setVariableValueToObject(testCompileMojo, "skip", true); - testCompileMojo.execute(); - testClass = new File(testCompileMojo.getOutputDirectory(), "foo/TestSkipTestCompile0Test.class"); - assertFalse(testClass.exists()); - } - - private CompilerMojo getCompilerMojo(String pomXml) throws Exception { - File testPom = new File(getBasedir(), pomXml); - - CompilerMojo mojo = (CompilerMojo) lookupMojo("compile", testPom); - - setVariableValueToObject(mojo, "log", new DebugEnabledLog()); - setVariableValueToObject(mojo, "projectArtifact", new ArtifactStub()); - setVariableValueToObject(mojo, "compilePath", Collections.EMPTY_LIST); - setVariableValueToObject(mojo, "session", getMockMavenSession()); - setVariableValueToObject(mojo, "project", getMockMavenProject()); - setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution()); - setVariableValueToObject(mojo, "source", AbstractCompilerMojo.DEFAULT_SOURCE); - setVariableValueToObject(mojo, "target", AbstractCompilerMojo.DEFAULT_TARGET); - - return mojo; - } - - private TestCompilerMojo getTestCompilerMojo(CompilerMojo compilerMojo, String pomXml) throws Exception { - File testPom = new File(getBasedir(), pomXml); - - TestCompilerMojo mojo = (TestCompilerMojo) lookupMojo("testCompile", testPom); - - setVariableValueToObject(mojo, "log", new DebugEnabledLog()); - - File buildDir = (File) getVariableValueFromObject(compilerMojo, "buildDirectory"); - File testClassesDir = new File(buildDir, "test-classes"); - setVariableValueToObject(mojo, "outputDirectory", testClassesDir); - - List testClasspathList = new ArrayList<>(); - - Artifact junitArtifact = mock(Artifact.class); - ArtifactHandler handler = mock(ArtifactHandler.class); - when(handler.isAddedToClasspath()).thenReturn(true); - when(junitArtifact.getArtifactHandler()).thenReturn(handler); - - String junitURI = org.junit.Test.class.getResource("Test.class").toURI().toString(); - junitURI = junitURI.substring("jar:".length(), junitURI.indexOf('!')); - File artifactFile = new File(URI.create(junitURI)); - when(junitArtifact.getFile()).thenReturn(artifactFile); - - testClasspathList.add(artifactFile.getAbsolutePath()); - testClasspathList.add(compilerMojo.getOutputDirectory().getPath()); - - String testSourceRoot = testPom.getParent() + "/src/test/java"; - setVariableValueToObject(mojo, "compileSourceRoots", Collections.singletonList(testSourceRoot)); - - MavenProject project = getMockMavenProject(); - project.setFile(testPom); - project.addCompileSourceRoot("/src/main/java"); - project.setArtifacts(Collections.singleton(junitArtifact)); - project.getBuild().setOutputDirectory(new File(buildDir, "classes").getAbsolutePath()); - setVariableValueToObject(mojo, "project", project); - setVariableValueToObject(mojo, "testPath", testClasspathList); - setVariableValueToObject(mojo, "session", getMockMavenSession()); - setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution()); - setVariableValueToObject(mojo, "source", AbstractCompilerMojo.DEFAULT_SOURCE); - setVariableValueToObject(mojo, "target", AbstractCompilerMojo.DEFAULT_TARGET); - - return mojo; - } - - private MavenProject getMockMavenProject() { - MavenProject mp = new MavenProject(); - mp.getBuild().setDirectory("target"); - mp.getBuild().setOutputDirectory("target/classes"); - mp.getBuild().setSourceDirectory("src/main/java"); - mp.getBuild().setTestOutputDirectory("target/test-classes"); - return mp; - } - - private MavenSession getMockMavenSession() { - MavenSession session = mock(MavenSession.class); - // when( session.getPluginContext( isA(PluginDescriptor.class), isA(MavenProject.class) ) ).thenReturn( - // Collections.emptyMap() ); - when(session.getCurrentProject()).thenReturn(getMockMavenProject()); - return session; - } - - private MojoExecution getMockMojoExecution() { - MojoDescriptor md = new MojoDescriptor(); - md.setGoal("compile"); - - MojoExecution me = new MojoExecution(md); - - PluginDescriptor pd = new PluginDescriptor(); - pd.setArtifactId("maven-compiler-plugin"); - md.setPluginDescriptor(pd); - - return me; - } -} diff --git a/src/test/java/org/apache/maven/plugin/compiler/MojoTestUtils.java b/src/test/java/org/apache/maven/plugin/compiler/MojoTestUtils.java new file mode 100644 index 00000000..7173d647 --- /dev/null +++ b/src/test/java/org/apache/maven/plugin/compiler/MojoTestUtils.java @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.plugin.compiler; + +import java.lang.reflect.Field; + +import org.apache.maven.execution.MavenSession; +import org.apache.maven.plugin.MojoExecution; +import org.apache.maven.plugin.descriptor.MojoDescriptor; +import org.apache.maven.plugin.descriptor.PluginDescriptor; +import org.apache.maven.project.MavenProject; +import org.codehaus.plexus.util.ReflectionUtils; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class MojoTestUtils { + + public static T getVariableValueFromObject(Object object, String variable) throws IllegalAccessException { + Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses(variable, object.getClass()); + field.setAccessible(true); + return (T) field.get(object); + } + + public static void setVariableValueToObject(Object object, String variable, T value) + throws IllegalAccessException { + Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses(variable, object.getClass()); + field.setAccessible(true); + field.set(object, value); + } + + public static MavenProject getMockMavenProject() { + MavenProject mp = new MavenProject(); + mp.getBuild().setDirectory("target"); + mp.getBuild().setOutputDirectory("target/classes"); + mp.getBuild().setSourceDirectory("src/main/java"); + mp.getBuild().setTestOutputDirectory("target/test-classes"); + return mp; + } + + public static MavenSession getMockMavenSession() { + MavenSession session = mock(MavenSession.class); + // when( session.getPluginContext( isA(PluginDescriptor.class), isA(MavenProject.class) ) ).thenReturn( + // Collections.emptyMap() ); + when(session.getCurrentProject()).thenReturn(getMockMavenProject()); + return session; + } + + public static MojoExecution getMockMojoExecution() { + MojoDescriptor md = new MojoDescriptor(); + MojoExecution me = new MojoExecution(md); + + PluginDescriptor pd = new PluginDescriptor(); + pd.setArtifactId("maven-compiler-plugin"); + md.setPluginDescriptor(pd); + + return me; + } +} diff --git a/src/test/java/org/apache/maven/plugin/compiler/TestCompilerMojoTest.java b/src/test/java/org/apache/maven/plugin/compiler/TestCompilerMojoTest.java new file mode 100644 index 00000000..19a18ef6 --- /dev/null +++ b/src/test/java/org/apache/maven/plugin/compiler/TestCompilerMojoTest.java @@ -0,0 +1,189 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.plugin.compiler; + +import java.io.File; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import org.apache.maven.plugin.compiler.stubs.CompilerManagerStub; +import org.apache.maven.plugin.testing.junit5.InjectMojo; +import org.apache.maven.plugin.testing.junit5.MojoTest; +import org.junit.jupiter.api.Test; + +import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMavenProject; +import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMavenSession; +import static org.apache.maven.plugin.compiler.MojoTestUtils.getMockMojoExecution; +import static org.apache.maven.plugin.compiler.MojoTestUtils.getVariableValueFromObject; +import static org.apache.maven.plugin.compiler.MojoTestUtils.setVariableValueToObject; +import static org.junit.jupiter.api.Assertions.*; + +@MojoTest +class TestCompilerMojoTest { + + private static final String TEST_COMPILE = "testCompile"; + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-basic-test/plugin-config.xml") + void testCompilerBasic(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + testCompilerMojo.execute(); + + File testClass = new File(testCompilerMojo.getOutputDirectory(), "foo/TestCompile0Test.class"); + + assertTrue(testClass::exists); + } + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-empty-source-test/plugin-config.xml") + public void testCompilerEmptySource(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + testCompilerMojo.execute(); + + assertFalse(testCompilerMojo.getOutputDirectory().exists()); + } + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-includes-excludes-test/plugin-config.xml") + void testCompilerIncludesExcludes(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + Set includes = new HashSet<>(); + includes.add("**/TestCompile4*.java"); + setVariableValueToObject(testCompilerMojo, "testIncludes", includes); + + Set excludes = new HashSet<>(); + excludes.add("**/TestCompile2*.java"); + excludes.add("**/TestCompile3*.java"); + setVariableValueToObject(testCompilerMojo, "testExcludes", excludes); + + testCompilerMojo.execute(); + + File testClass = new File(testCompilerMojo.getOutputDirectory(), "foo/TestCompile2TestCase.class"); + assertFalse(testClass.exists()); + + testClass = new File(testCompilerMojo.getOutputDirectory(), "foo/TestCompile3TestCase.class"); + assertFalse(testClass.exists()); + + testClass = new File(testCompilerMojo.getOutputDirectory(), "foo/TestCompile4TestCase.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-fork-test/plugin-config.xml") + void testCompilerFork(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + // JAVA_HOME doesn't have to be on the PATH. + setVariableValueToObject( + testCompilerMojo, "executable", new File(System.getenv("JAVA_HOME"), "bin/javac").getPath()); + + testCompilerMojo.execute(); + + File testClass = new File(testCompilerMojo.getOutputDirectory(), "foo/TestCompile1TestCase.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-one-output-file-test/plugin-config.xml") + void testOneOutputFileForAllInput(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + setVariableValueToObject(testCompilerMojo, "compilerManager", new CompilerManagerStub()); + + testCompilerMojo.execute(); + + File testClass = new File(testCompilerMojo.getOutputDirectory(), "compiled.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-one-output-file-test2/plugin-config.xml") + void testOneOutputFileForAllInput2(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + setVariableValueToObject(testCompilerMojo, "compilerManager", new CompilerManagerStub()); + + Set includes = new HashSet<>(); + includes.add("**/TestCompile4*.java"); + setVariableValueToObject(testCompilerMojo, "testIncludes", includes); + + Set excludes = new HashSet<>(); + excludes.add("**/TestCompile2*.java"); + excludes.add("**/TestCompile3*.java"); + setVariableValueToObject(testCompilerMojo, "testExcludes", excludes); + + testCompilerMojo.execute(); + + File testClass = new File(testCompilerMojo.getOutputDirectory(), "compiled.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-skip-main/plugin-config.xml") + void testCompileSkipMain(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + testCompilerMojo.execute(); + + File testClass = new File(testCompilerMojo.getOutputDirectory(), "foo/TestSkipMainCompile0Test.class"); + assertTrue(testClass.exists()); + } + + @Test + @InjectMojo(goal = TEST_COMPILE, pom = "classpath:/unit/compiler-skip-test/plugin-config.xml") + void testCompileSkipTest(TestCompilerMojo testCompilerMojo) throws Exception { + setUpCompilerMojoTestEnv(testCompilerMojo); + + setVariableValueToObject(testCompilerMojo, "skip", true); + + testCompilerMojo.execute(); + + File testClass = new File(testCompilerMojo.getOutputDirectory(), "foo/TestSkipTestCompile0Test.class"); + assertFalse(testClass.exists()); + } + + private void setUpCompilerMojoTestEnv(TestCompilerMojo mojo) throws Exception { + File buildDir = getVariableValueFromObject(mojo, "buildDirectory"); + File testClassesDir = new File(buildDir, "test-classes"); + setVariableValueToObject(mojo, "outputDirectory", testClassesDir); + + setVariableValueToObject(mojo, "project", getMockMavenProject()); + + Path baseDir = mojo.getOutputDirectory() + .toPath() + .resolveSibling(Paths.get("..", "..", "..", "..", "test-classes")) + .normalize(); + Path subpath = mojo.getOutputDirectory().toPath().subpath(baseDir.getNameCount(), baseDir.getNameCount() + 2); + String sourceRoot = baseDir.resolve(subpath) + "/src/main/java"; + String testSourceRoot = baseDir.resolve(subpath) + "/src/test/java"; + + setVariableValueToObject(mojo, "compileSourceRoots", Arrays.asList(sourceRoot, testSourceRoot)); + + setVariableValueToObject(mojo, "session", getMockMavenSession()); + setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution()); + setVariableValueToObject(mojo, "source", AbstractCompilerMojo.DEFAULT_SOURCE); + setVariableValueToObject(mojo, "target", AbstractCompilerMojo.DEFAULT_TARGET); + } +} diff --git a/src/test/resources/unit/compiler-args-test/src/test/java/TestCompile0Test.java b/src/test/resources/unit/compiler-args-test/src/test/java/TestCompile0Test.java index 837ab649..264b6ab0 100644 --- a/src/test/resources/unit/compiler-args-test/src/test/java/TestCompile0Test.java +++ b/src/test/resources/unit/compiler-args-test/src/test/java/TestCompile0Test.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile0Test extends TestCase { +public class TestCompile0Test { public void testCompile0Test() { TestCompile0 test = new TestCompile0(); } diff --git a/src/test/resources/unit/compiler-basic-test/src/test/java/TestCompile0Test.java b/src/test/resources/unit/compiler-basic-test/src/test/java/TestCompile0Test.java index 837ab649..264b6ab0 100644 --- a/src/test/resources/unit/compiler-basic-test/src/test/java/TestCompile0Test.java +++ b/src/test/resources/unit/compiler-basic-test/src/test/java/TestCompile0Test.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile0Test extends TestCase { +public class TestCompile0Test { public void testCompile0Test() { TestCompile0 test = new TestCompile0(); } diff --git a/src/test/resources/unit/compiler-fail-test/src/test/java/TestCompile0Test.java b/src/test/resources/unit/compiler-fail-test/src/test/java/TestCompile0Test.java index 837ab649..264b6ab0 100644 --- a/src/test/resources/unit/compiler-fail-test/src/test/java/TestCompile0Test.java +++ b/src/test/resources/unit/compiler-fail-test/src/test/java/TestCompile0Test.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile0Test extends TestCase { +public class TestCompile0Test { public void testCompile0Test() { TestCompile0 test = new TestCompile0(); } diff --git a/src/test/resources/unit/compiler-failonerror-test/src/test/java/TestCompile0Test.java b/src/test/resources/unit/compiler-failonerror-test/src/test/java/TestCompile0Test.java index 837ab649..264b6ab0 100644 --- a/src/test/resources/unit/compiler-failonerror-test/src/test/java/TestCompile0Test.java +++ b/src/test/resources/unit/compiler-failonerror-test/src/test/java/TestCompile0Test.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile0Test extends TestCase { +public class TestCompile0Test { public void testCompile0Test() { TestCompile0 test = new TestCompile0(); } diff --git a/src/test/resources/unit/compiler-fork-test/src/test/java/TestCompile1TestCase.java b/src/test/resources/unit/compiler-fork-test/src/test/java/TestCompile1TestCase.java index 14288af1..2121488d 100644 --- a/src/test/resources/unit/compiler-fork-test/src/test/java/TestCompile1TestCase.java +++ b/src/test/resources/unit/compiler-fork-test/src/test/java/TestCompile1TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile1TestCase extends TestCase { +public class TestCompile1TestCase { public void testCompile1() { TestCompile1 test = new TestCompile1(); } diff --git a/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile2TestCase.java b/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile2TestCase.java index ea864c36..7d6cf4d2 100644 --- a/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile2TestCase.java +++ b/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile2TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile2TestCase extends TestCase { +public class TestCompile2TestCase { public void testCompile2() { TestCompile2 test = new TestCompile2(); } diff --git a/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile3TestCase.java b/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile3TestCase.java index 4f1fe01c..1d485066 100644 --- a/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile3TestCase.java +++ b/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile3TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile3TestCase extends TestCase { +public class TestCompile3TestCase { public void testCompile3() { TestCompile3 test = new TestCompile3(); } diff --git a/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile4TestCase.java b/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile4TestCase.java index c357cb87..7d39b079 100644 --- a/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile4TestCase.java +++ b/src/test/resources/unit/compiler-includes-excludes-test/src/test/java/TestCompile4TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile4TestCase extends TestCase { +public class TestCompile4TestCase { public void testCompile4() { TestCompile4 test = new TestCompile4(); } diff --git a/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile2TestCase.java b/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile2TestCase.java index ea864c36..7d6cf4d2 100644 --- a/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile2TestCase.java +++ b/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile2TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile2TestCase extends TestCase { +public class TestCompile2TestCase { public void testCompile2() { TestCompile2 test = new TestCompile2(); } diff --git a/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile3TestCase.java b/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile3TestCase.java index 4f1fe01c..1d485066 100644 --- a/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile3TestCase.java +++ b/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile3TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile3TestCase extends TestCase { +public class TestCompile3TestCase { public void testCompile3() { TestCompile3 test = new TestCompile3(); } diff --git a/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile4TestCase.java b/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile4TestCase.java index c357cb87..7d39b079 100644 --- a/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile4TestCase.java +++ b/src/test/resources/unit/compiler-one-output-file-test/src/test/java/TestCompile4TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile4TestCase extends TestCase { +public class TestCompile4TestCase { public void testCompile4() { TestCompile4 test = new TestCompile4(); } diff --git a/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile2TestCase.java b/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile2TestCase.java index ea864c36..7d6cf4d2 100644 --- a/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile2TestCase.java +++ b/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile2TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile2TestCase extends TestCase { +public class TestCompile2TestCase { public void testCompile2() { TestCompile2 test = new TestCompile2(); } diff --git a/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile3TestCase.java b/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile3TestCase.java index 4f1fe01c..1d485066 100644 --- a/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile3TestCase.java +++ b/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile3TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile3TestCase extends TestCase { +public class TestCompile3TestCase { public void testCompile3() { TestCompile3 test = new TestCompile3(); } diff --git a/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile4TestCase.java b/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile4TestCase.java index c357cb87..7d39b079 100644 --- a/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile4TestCase.java +++ b/src/test/resources/unit/compiler-one-output-file-test2/src/test/java/TestCompile4TestCase.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestCompile4TestCase extends TestCase { +public class TestCompile4TestCase { public void testCompile4() { TestCompile4 test = new TestCompile4(); } diff --git a/src/test/resources/unit/compiler-skip-main/src/test/java/TestSkipMainCompile0Test.java b/src/test/resources/unit/compiler-skip-main/src/test/java/TestSkipMainCompile0Test.java index e6c7d965..ae9fd98c 100644 --- a/src/test/resources/unit/compiler-skip-main/src/test/java/TestSkipMainCompile0Test.java +++ b/src/test/resources/unit/compiler-skip-main/src/test/java/TestSkipMainCompile0Test.java @@ -18,8 +18,6 @@ */ package foo; -import junit.framework.TestCase; - -public class TestSkipMainCompile0Test extends TestCase { +public class TestSkipMainCompile0Test { public void testSkipMainCompile0Test() {} } diff --git a/src/test/resources/unit/compiler-skip-test/src/test/java/TestSkipTestCompile0Test.java b/src/test/resources/unit/compiler-skip-test/src/test/java/TestSkipTestCompile0Test.java index d316c10d..2eda7b3d 100644 --- a/src/test/resources/unit/compiler-skip-test/src/test/java/TestSkipTestCompile0Test.java +++ b/src/test/resources/unit/compiler-skip-test/src/test/java/TestSkipTestCompile0Test.java @@ -18,9 +18,7 @@ */ package foo; -import junit.framework.TestCase; - -public class TestSkipTestCompile0Test extends TestCase { +public class TestSkipTestCompile0Test { public void testSkipTestCompile0Test() { TestSkipTestCompile0 test = new TestSkipTestCompile0(); }