Skip to content

Commit b7528f7

Browse files
committed
chore: migrate AbstractMojoTestCase based test to use MojoTest
Signed-off-by: Sandra Parsick <[email protected]>
1 parent b14073c commit b7528f7

File tree

5 files changed

+112
-129
lines changed

5 files changed

+112
-129
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ under the License.
331331
<dependency>
332332
<groupId>org.apache.maven.plugin-testing</groupId>
333333
<artifactId>maven-plugin-testing-harness</artifactId>
334-
<version>4.0.0-alpha-2</version>
334+
<version>3.4.0</version> <!-- TODO check 4.0.0-alpha-2-->
335335
<scope>test</scope>
336336
</dependency>
337337
<dependency>

src/test/java/org/apache/maven/plugins/changes/ChangesValidatorMojoTest.java

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020

2121
import java.io.File;
2222

23+
import org.apache.maven.api.plugin.testing.InjectMojo;
24+
import org.apache.maven.api.plugin.testing.MojoParameter;
25+
import org.apache.maven.api.plugin.testing.MojoTest;
2326
import org.apache.maven.plugin.MojoExecutionException;
2427
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
2528
import org.junit.jupiter.api.BeforeEach;
@@ -32,32 +35,24 @@
3235
* @since 29 juil. 2008
3336
* @version $Id$
3437
*/
35-
public class ChangesValidatorMojoTest extends AbstractMojoTestCase {
36-
37-
protected ChangesValidatorMojo mojo;
38-
39-
@BeforeEach
40-
public void setUp() throws Exception {
41-
super.setUp();
42-
File pom = new File(getBasedir(), "/src/test/unit/plugin-config.xml");
43-
mojo = lookupMojo("changes-validate", pom);
44-
}
38+
@MojoTest
39+
public class ChangesValidatorMojoTest {
4540

41+
@InjectMojo(goal = "changes-validate", pom = "src/test/unit/plugin-config.xml")
42+
@MojoParameter(name = "changesXsdVersion", value = "2.0.0")
43+
@MojoParameter(name = "xmlPath", value = "src/test/unit/changes.xml")
44+
@MojoParameter(name = "failOnError", value = "true")
4645
@Test
47-
public void testValidationSuccess() throws Exception {
48-
File changesXml = new File(getBasedir(), "/src/test/unit/changes.xml");
49-
setVariableValueToObject(mojo, "xmlPath", changesXml);
50-
setVariableValueToObject(mojo, "changesXsdVersion", "2.0.0");
51-
setVariableValueToObject(mojo, "failOnError", Boolean.TRUE);
46+
public void testValidationSuccess(ChangesValidatorMojo mojo) throws Exception {
5247
mojo.execute();
5348
}
5449

50+
@InjectMojo(goal = "changes-validate", pom = "src/test/unit/plugin-config.xml")
51+
@MojoParameter(name = "changesXsdVersion", value = "2.0.0")
52+
@MojoParameter(name = "xmlPath", value = "src/test/unit/non-valid-changes.xml")
53+
@MojoParameter(name = "failOnError", value = "true")
5554
@Test
56-
public void testValidationFailedWithMojoFailure() throws Exception {
57-
File changesXml = new File(getBasedir(), "/src/test/unit/non-valid-changes.xml");
58-
setVariableValueToObject(mojo, "xmlPath", changesXml);
59-
setVariableValueToObject(mojo, "changesXsdVersion", "2.0.0");
60-
setVariableValueToObject(mojo, "failOnError", Boolean.TRUE);
55+
public void testValidationFailedWithMojoFailure(ChangesValidatorMojo mojo) throws Exception {
6156
try {
6257
mojo.execute();
6358
fail(" A MojoExecutionException should occur here. Changes file is not valid and failOnError is true ");
@@ -66,12 +61,12 @@ public void testValidationFailedWithMojoFailure() throws Exception {
6661
}
6762
}
6863

64+
@InjectMojo(goal = "changes-validate", pom = "src/test/unit/plugin-config.xml")
65+
@MojoParameter(name = "changesXsdVersion", value = "1.0.0")
66+
@MojoParameter(name = "xmlPath", value = "src/test/unit/non-valid-changes.xml")
67+
@MojoParameter(name = "failOnError", value = "false")
6968
@Test
70-
public void testValidationFailedWithNoMojoFailure() throws Exception {
71-
File changesXml = new File(getBasedir(), "/src/test/unit/non-valid-changes.xml");
72-
setVariableValueToObject(mojo, "xmlPath", changesXml);
73-
setVariableValueToObject(mojo, "changesXsdVersion", "1.0.0");
74-
setVariableValueToObject(mojo, "failOnError", Boolean.FALSE);
69+
public void testValidationFailedWithNoMojoFailure(ChangesValidatorMojo mojo) throws Exception {
7570
mojo.execute();
7671
}
7772
}

src/test/java/org/apache/maven/plugins/changes/announcement/AnnouncementMojoTest.java

Lines changed: 30 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -19,75 +19,65 @@
1919
package org.apache.maven.plugins.changes.announcement;
2020

2121
import java.io.File;
22+
import java.io.IOException;
2223
import java.nio.file.Files;
2324

24-
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
25+
import org.apache.maven.api.plugin.testing.InjectMojo;
26+
import org.apache.maven.api.plugin.testing.MojoParameter;
27+
import org.apache.maven.api.plugin.testing.MojoTest;
28+
import org.codehaus.plexus.testing.PlexusExtension;
2529
import org.codehaus.plexus.util.FileUtils;
26-
import org.junit.jupiter.api.BeforeEach;
2730
import org.junit.jupiter.api.Test;
2831

32+
import static org.junit.jupiter.api.Assertions.assertTrue;
33+
2934
/**
3035
* @author Olivier Lamy
3136
* @version $Id$
3237
*/
33-
public class AnnouncementMojoTest extends AbstractMojoTestCase {
34-
@BeforeEach
35-
void setup() throws Exception {
36-
super.setUp();
37-
}
38-
38+
@MojoTest
39+
public class AnnouncementMojoTest {
40+
@InjectMojo(goal = "announcement-generate", pom = "src/test/unit/plugin-config.xml")
41+
@MojoParameter(name = "xmlPath", value = "src/test/unit/announce-changes.xml")
42+
@MojoParameter(name = "announcementDirectory", value = "target/test")
43+
@MojoParameter(name = "version", value = "1.1")
44+
@MojoParameter(name = "template", value = "announcement.vm")
45+
@MojoParameter(name = "templateDirectory", value = "src/main/resources/org/apache/maven/plugins/changes/announcement/")
46+
@MojoParameter(name = "introduction", value = "Nice library")
3947
@Test
40-
public void testAnnounceGeneration() throws Exception {
41-
File pom = new File(getBasedir(), "/src/test/unit/plugin-config.xml");
42-
AnnouncementMojo mojo = lookupMojo("announcement-generate", pom);
43-
44-
setVariableValueToObject(mojo, "xmlPath", new File(getBasedir(), "/src/test/unit/announce-changes.xml"));
45-
46-
File announcementDirectory = new File(getBasedir(), "target/test");
47-
48-
if (announcementDirectory.exists()) {
49-
FileUtils.deleteDirectory(announcementDirectory);
50-
announcementDirectory.mkdirs();
51-
} else {
52-
announcementDirectory.mkdirs();
53-
}
54-
setVariableValueToObject(mojo, "announcementDirectory", announcementDirectory);
55-
setVariableValueToObject(mojo, "version", "1.1");
56-
setVariableValueToObject(mojo, "template", "announcement.vm");
57-
setVariableValueToObject(
58-
mojo, "templateDirectory", "src/main/resources/org/apache/maven/plugins/changes/announcement/");
59-
setVariableValueToObject(mojo, "basedir", getBasedir());
60-
setVariableValueToObject(mojo, "introduction", "Nice library");
48+
public void testAnnounceGeneration(AnnouncementMojo mojo) throws Exception {
49+
File announcementDirectory = prepareAnnouncementDirectory();
6150
mojo.execute();
6251

6352
String result =
6453
new String(Files.readAllBytes(announcementDirectory.toPath().resolve("announcement.vm")));
6554

6655
assertContains("Nice library", result);
67-
6856
assertContains("Changes in this version include:", result);
69-
7057
assertContains("New features:", result);
71-
7258
assertContains("o Added additional documentation on how to configure the plugin.", result);
73-
7459
assertContains("Fixed Bugs:", result);
75-
7660
assertContains("o Enable retrieving component-specific issues. Issue: MCHANGES-88.", result);
77-
7861
assertContains("Changes:", result);
79-
8062
assertContains("o Handle different issue systems.", result);
81-
8263
assertContains("o Updated dependencies.", result);
83-
8464
assertContains("Removed:", result);
85-
8665
assertContains("o The element type \" link \" must be terminated by the matching end-tag.", result);
87-
8866
assertContains("Deleted the erroneous code.", result);
8967
}
9068

69+
private File prepareAnnouncementDirectory() throws IOException {
70+
File announcementDirectory = new File(PlexusExtension.getBasedir(), "target/test");
71+
72+
if (announcementDirectory.exists()) {
73+
FileUtils.deleteDirectory(announcementDirectory);
74+
announcementDirectory.mkdirs();
75+
} else {
76+
announcementDirectory.mkdirs();
77+
}
78+
return announcementDirectory;
79+
}
80+
9181
private static void assertContains(String content, String announce) {
9282
assertTrue(announce.indexOf(content) > 0);
9383
}

src/test/java/org/apache/maven/plugins/changes/jira/JiraChangesReportTest.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
*/
1919
package org.apache.maven.plugins.changes.jira;
2020

21-
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
21+
import org.apache.maven.api.plugin.testing.InjectMojo;
22+
import org.apache.maven.api.plugin.testing.MojoParameter;
23+
import org.apache.maven.api.plugin.testing.MojoTest;
2224
import org.junit.jupiter.api.Test;
2325

2426
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -29,17 +31,19 @@
2931
* @author jrh3k5
3032
* @since 2.8
3133
*/
32-
public class JiraChangesReportTest extends AbstractMojoTestCase {
33-
private final JiraChangesReport mojo = new JiraChangesReport(null);
34+
@MojoTest
35+
public class JiraChangesReportTest {
3436

3537
/**
3638
* If the mojo has been marked to be skipped, then it should indicate that the report cannot be generated.
3739
*
3840
* @throws Exception If any errors occur during the test run.
3941
*/
42+
4043
@Test
41-
public void testCanGenerateReportSkipped() throws Exception {
42-
setVariableValueToObject(mojo, "skip", Boolean.TRUE);
44+
@InjectMojo(goal ="jira-changes")
45+
@MojoParameter(name= "skip", value = "true")
46+
public void testCanGenerateReportSkipped(JiraChangesReport mojo) {
4347
assertFalse(mojo.canGenerateReport());
4448
}
4549
}

src/test/java/org/apache/maven/plugins/changes/jira/JiraUnicodeTestCase.java

Lines changed: 52 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
import java.util.List;
2424

2525
import org.apache.commons.io.FileUtils;
26+
import org.apache.maven.api.plugin.testing.InjectMojo;
27+
import org.apache.maven.api.plugin.testing.MojoTest;
2628
import org.apache.maven.execution.MavenSession;
2729
import org.apache.maven.model.Plugin;
2830
import org.apache.maven.plugin.MojoExecution;
@@ -44,69 +46,61 @@
4446
/**
4547
* @version $Id$
4648
*/
47-
public class JiraUnicodeTestCase extends AbstractMojoTestCase {
49+
@MojoTest
50+
public class JiraUnicodeTestCase {
4851
/*
4952
* Something in Doxia escapes all non-Ascii even when the charset is UTF-8. This test will fail if that ever
5053
* changes.
5154
*/
5255
private static final String TEST_TURTLES = "&#x6d77;&#x9f9f;&#x4e00;&#x8def;&#x4e0b;&#x8dcc;&#x3002;";
5356

54-
@BeforeEach
55-
public void setUp() throws Exception {
56-
super.setUp();
57-
}
5857

59-
@Test
60-
public void testUnicodeReport() throws Exception {
61-
62-
File pom = new File(getBasedir(), "/src/test/unit/jira-plugin-config.xml");
63-
assertNotNull(pom);
64-
assertTrue(pom.exists());
65-
66-
JiraChangesReport mojo = lookupMojo("jira-changes", pom);
67-
MavenProject project = new JiraUnicodeTestProjectStub();
68-
MavenSession session = newMavenSession(project);
69-
70-
RepositorySystem repositorySystem = lookup(RepositorySystem.class);
71-
72-
DefaultRepositorySystemSession repositorySystemSession =
73-
(DefaultRepositorySystemSession) session.getRepositorySession();
74-
repositorySystemSession.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(
75-
repositorySystemSession, new LocalRepository(System.getProperty("localRepository"))));
76-
77-
// Test need to download a maven-fluido-skin if not present in local repo
78-
List<RemoteRepository> remoteRepositories = repositorySystem.newResolutionRepositories(
79-
repositorySystemSession,
80-
Collections.singletonList(
81-
new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2")
82-
.build()));
83-
84-
setVariableValueToObject(mojo, "project", project);
85-
setVariableValueToObject(mojo, "reactorProjects", Collections.singletonList(project));
86-
setVariableValueToObject(mojo, "repoSession", repositorySystemSession);
87-
setVariableValueToObject(mojo, "remoteProjectRepositories", remoteRepositories);
88-
89-
setVariableValueToObject(mojo, "siteDirectory", new File("non-existing"));
90-
setVariableValueToObject(mojo, "mavenSession", session);
91-
setVariableValueToObject(mojo, "mojoExecution", new MojoExecution(new Plugin(), "jira-changes", "default"));
92-
93-
RestJiraDownloader mock = mock(RestJiraDownloader.class);
94-
Issue issue = new Issue();
95-
issue.setKey("PCSUNIT-2");
96-
issue.setLink("http://pcsjira.slg.gr/browse/PCSUNIT-2");
97-
issue.setSummary("海龟一路下跌。 Απεικόνιση σε EXCEL των data των φορμών. Περίπτωση με πολλά blocks");
98-
issue.setStatus("Closed");
99-
issue.setResolution("Fixed");
100-
issue.setAssignee("Nikolaos Stais");
101-
when(mock.getIssueList()).thenReturn(Collections.singletonList(issue));
102-
103-
mojo.setMockDownloader(mock);
104-
File outputDir = new File("target/jira-test-output");
105-
outputDir.mkdirs();
106-
mojo.setReportOutputDirectory(outputDir);
107-
mojo.execute();
108-
String reportHtml = FileUtils.readFileToString(new File(outputDir, "jira-changes.html"), "utf-8");
109-
int turtleIndex = reportHtml.indexOf(TEST_TURTLES);
110-
assertTrue(turtleIndex >= 0);
111-
}
58+
// @InjectMojo(goal = "jira-changes", pom = "/src/test/unit/jira-plugin-config.xml")
59+
// @Test
60+
// public void testUnicodeReport(JiraChangesReport mojo) throws Exception {
61+
// MavenProject project = new JiraUnicodeTestProjectStub();
62+
// MavenSession session = newMavenSession(project);
63+
//
64+
// RepositorySystem repositorySystem = lookup(RepositorySystem.class);
65+
//
66+
// DefaultRepositorySystemSession repositorySystemSession =
67+
// (DefaultRepositorySystemSession) session.getRepositorySession();
68+
// repositorySystemSession.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(
69+
// repositorySystemSession, new LocalRepository(System.getProperty("localRepository"))));
70+
//
71+
// // Test need to download a maven-fluido-skin if not present in local repo
72+
// List<RemoteRepository> remoteRepositories = repositorySystem.newResolutionRepositories(
73+
// repositorySystemSession,
74+
// Collections.singletonList(
75+
// new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2")
76+
// .build()));
77+
//
78+
// setVariableValueToObject(mojo, "project", project);
79+
// setVariableValueToObject(mojo, "reactorProjects", Collections.singletonList(project));
80+
// setVariableValueToObject(mojo, "repoSession", repositorySystemSession);
81+
// setVariableValueToObject(mojo, "remoteProjectRepositories", remoteRepositories);
82+
//
83+
// setVariableValueToObject(mojo, "siteDirectory", new File("non-existing"));
84+
// setVariableValueToObject(mojo, "mavenSession", session);
85+
// setVariableValueToObject(mojo, "mojoExecution", new MojoExecution(new Plugin(), "jira-changes", "default"));
86+
//
87+
// RestJiraDownloader mock = mock(RestJiraDownloader.class);
88+
// Issue issue = new Issue();
89+
// issue.setKey("PCSUNIT-2");
90+
// issue.setLink("http://pcsjira.slg.gr/browse/PCSUNIT-2");
91+
// issue.setSummary("海龟一路下跌。 Απεικόνιση σε EXCEL των data των φορμών. Περίπτωση με πολλά blocks");
92+
// issue.setStatus("Closed");
93+
// issue.setResolution("Fixed");
94+
// issue.setAssignee("Nikolaos Stais");
95+
// when(mock.getIssueList()).thenReturn(Collections.singletonList(issue));
96+
//
97+
// mojo.setMockDownloader(mock);
98+
// File outputDir = new File("target/jira-test-output");
99+
// outputDir.mkdirs();
100+
// mojo.setReportOutputDirectory(outputDir);
101+
// mojo.execute();
102+
// String reportHtml = FileUtils.readFileToString(new File(outputDir, "jira-changes.html"), "utf-8");
103+
// int turtleIndex = reportHtml.indexOf(TEST_TURTLES);
104+
// assertTrue(turtleIndex >= 0);
105+
// }
112106
}

0 commit comments

Comments
 (0)