Skip to content

Commit 576a982

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

File tree

5 files changed

+114
-156
lines changed

5 files changed

+114
-156
lines changed

pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,8 @@ 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>
335+
<!-- TODO check 4.0.0-alpha-2-->
335336
<scope>test</scope>
336337
</dependency>
337338
<dependency>

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

Lines changed: 20 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@
1818
*/
1919
package org.apache.maven.plugins.changes;
2020

21-
import java.io.File;
22-
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;
2324
import org.apache.maven.plugin.MojoExecutionException;
24-
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
25-
import org.junit.jupiter.api.BeforeEach;
2625
import org.junit.jupiter.api.Test;
2726

2827
import static org.junit.jupiter.api.Assertions.fail;
@@ -32,32 +31,24 @@
3231
* @since 29 juil. 2008
3332
* @version $Id$
3433
*/
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-
}
34+
@MojoTest
35+
public class ChangesValidatorMojoTest {
4536

37+
@InjectMojo(goal = "changes-validate", pom = "src/test/unit/plugin-config.xml")
38+
@MojoParameter(name = "changesXsdVersion", value = "2.0.0")
39+
@MojoParameter(name = "xmlPath", value = "src/test/unit/changes.xml")
40+
@MojoParameter(name = "failOnError", value = "true")
4641
@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);
42+
public void testValidationSuccess(ChangesValidatorMojo mojo) throws Exception {
5243
mojo.execute();
5344
}
5445

46+
@InjectMojo(goal = "changes-validate", pom = "src/test/unit/plugin-config.xml")
47+
@MojoParameter(name = "changesXsdVersion", value = "2.0.0")
48+
@MojoParameter(name = "xmlPath", value = "src/test/unit/non-valid-changes.xml")
49+
@MojoParameter(name = "failOnError", value = "true")
5550
@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);
51+
public void testValidationFailedWithMojoFailure(ChangesValidatorMojo mojo) throws Exception {
6152
try {
6253
mojo.execute();
6354
fail(" A MojoExecutionException should occur here. Changes file is not valid and failOnError is true ");
@@ -66,12 +57,12 @@ public void testValidationFailedWithMojoFailure() throws Exception {
6657
}
6758
}
6859

60+
@InjectMojo(goal = "changes-validate", pom = "src/test/unit/plugin-config.xml")
61+
@MojoParameter(name = "changesXsdVersion", value = "1.0.0")
62+
@MojoParameter(name = "xmlPath", value = "src/test/unit/non-valid-changes.xml")
63+
@MojoParameter(name = "failOnError", value = "false")
6964
@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);
65+
public void testValidationFailedWithNoMojoFailure(ChangesValidatorMojo mojo) throws Exception {
7566
mojo.execute();
7667
}
7768
}

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

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -19,75 +19,67 @@
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(
46+
name = "templateDirectory",
47+
value = "src/main/resources/org/apache/maven/plugins/changes/announcement/")
48+
@MojoParameter(name = "introduction", value = "Nice library")
3949
@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");
50+
public void testAnnounceGeneration(AnnouncementMojo mojo) throws Exception {
51+
File announcementDirectory = prepareAnnouncementDirectory();
6152
mojo.execute();
6253

6354
String result =
6455
new String(Files.readAllBytes(announcementDirectory.toPath().resolve("announcement.vm")));
6556

6657
assertContains("Nice library", result);
67-
6858
assertContains("Changes in this version include:", result);
69-
7059
assertContains("New features:", result);
71-
7260
assertContains("o Added additional documentation on how to configure the plugin.", result);
73-
7461
assertContains("Fixed Bugs:", result);
75-
7662
assertContains("o Enable retrieving component-specific issues. Issue: MCHANGES-88.", result);
77-
7863
assertContains("Changes:", result);
79-
8064
assertContains("o Handle different issue systems.", result);
81-
8265
assertContains("o Updated dependencies.", result);
83-
8466
assertContains("Removed:", result);
85-
8667
assertContains("o The element type \" link \" must be terminated by the matching end-tag.", result);
87-
8868
assertContains("Deleted the erroneous code.", result);
8969
}
9070

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

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

Lines changed: 8 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,18 @@
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
*/
4042
@Test
41-
public void testCanGenerateReportSkipped() throws Exception {
42-
setVariableValueToObject(mojo, "skip", Boolean.TRUE);
43+
@InjectMojo(goal = "jira-changes")
44+
@MojoParameter(name = "skip", value = "true")
45+
public void testCanGenerateReportSkipped(JiraChangesReport mojo) {
4346
assertFalse(mojo.canGenerateReport());
4447
}
4548
}

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

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

21-
import java.io.File;
22-
import java.util.Collections;
23-
import java.util.List;
24-
25-
import org.apache.commons.io.FileUtils;
26-
import org.apache.maven.execution.MavenSession;
27-
import org.apache.maven.model.Plugin;
28-
import org.apache.maven.plugin.MojoExecution;
29-
import org.apache.maven.plugin.testing.AbstractMojoTestCase;
30-
import org.apache.maven.plugins.changes.issues.Issue;
31-
import org.apache.maven.project.MavenProject;
32-
import org.eclipse.aether.DefaultRepositorySystemSession;
33-
import org.eclipse.aether.RepositorySystem;
34-
import org.eclipse.aether.repository.LocalRepository;
35-
import org.eclipse.aether.repository.RemoteRepository;
36-
import org.junit.jupiter.api.BeforeEach;
37-
import org.junit.jupiter.api.Test;
38-
39-
import static org.junit.jupiter.api.Assertions.assertNotNull;
40-
import static org.junit.jupiter.api.Assertions.assertTrue;
41-
import static org.mockito.Mockito.mock;
42-
import static org.mockito.Mockito.when;
21+
import org.apache.maven.api.plugin.testing.MojoTest;
4322

4423
/**
4524
* @version $Id$
4625
*/
47-
public class JiraUnicodeTestCase extends AbstractMojoTestCase {
26+
@MojoTest
27+
public class JiraUnicodeTestCase {
4828
/*
4929
* Something in Doxia escapes all non-Ascii even when the charset is UTF-8. This test will fail if that ever
5030
* changes.
5131
*/
5232
private static final String TEST_TURTLES = "&#x6d77;&#x9f9f;&#x4e00;&#x8def;&#x4e0b;&#x8dcc;&#x3002;";
5333

54-
@BeforeEach
55-
public void setUp() throws Exception {
56-
super.setUp();
57-
}
58-
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-
}
34+
// @InjectMojo(goal = "jira-changes", pom = "/src/test/unit/jira-plugin-config.xml")
35+
// @Test
36+
// public void testUnicodeReport(JiraChangesReport mojo) throws Exception {
37+
// MavenProject project = new JiraUnicodeTestProjectStub();
38+
// MavenSession session = newMavenSession(project);
39+
//
40+
// RepositorySystem repositorySystem = lookup(RepositorySystem.class);
41+
//
42+
// DefaultRepositorySystemSession repositorySystemSession =
43+
// (DefaultRepositorySystemSession) session.getRepositorySession();
44+
// repositorySystemSession.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(
45+
// repositorySystemSession, new LocalRepository(System.getProperty("localRepository"))));
46+
//
47+
// // Test need to download a maven-fluido-skin if not present in local repo
48+
// List<RemoteRepository> remoteRepositories = repositorySystem.newResolutionRepositories(
49+
// repositorySystemSession,
50+
// Collections.singletonList(
51+
// new RemoteRepository.Builder("central", "default", "https://repo.maven.apache.org/maven2")
52+
// .build()));
53+
//
54+
// setVariableValueToObject(mojo, "project", project);
55+
// setVariableValueToObject(mojo, "reactorProjects", Collections.singletonList(project));
56+
// setVariableValueToObject(mojo, "repoSession", repositorySystemSession);
57+
// setVariableValueToObject(mojo, "remoteProjectRepositories", remoteRepositories);
58+
//
59+
// setVariableValueToObject(mojo, "siteDirectory", new File("non-existing"));
60+
// setVariableValueToObject(mojo, "mavenSession", session);
61+
// setVariableValueToObject(mojo, "mojoExecution", new MojoExecution(new Plugin(), "jira-changes",
62+
// "default"));
63+
//
64+
// RestJiraDownloader mock = mock(RestJiraDownloader.class);
65+
// Issue issue = new Issue();
66+
// issue.setKey("PCSUNIT-2");
67+
// issue.setLink("http://pcsjira.slg.gr/browse/PCSUNIT-2");
68+
// issue.setSummary("海龟一路下跌。 Απεικόνιση σε EXCEL των data των φορμών. Περίπτωση με πολλά blocks");
69+
// issue.setStatus("Closed");
70+
// issue.setResolution("Fixed");
71+
// issue.setAssignee("Nikolaos Stais");
72+
// when(mock.getIssueList()).thenReturn(Collections.singletonList(issue));
73+
//
74+
// mojo.setMockDownloader(mock);
75+
// File outputDir = new File("target/jira-test-output");
76+
// outputDir.mkdirs();
77+
// mojo.setReportOutputDirectory(outputDir);
78+
// mojo.execute();
79+
// String reportHtml = FileUtils.readFileToString(new File(outputDir, "jira-changes.html"), "utf-8");
80+
// int turtleIndex = reportHtml.indexOf(TEST_TURTLES);
81+
// assertTrue(turtleIndex >= 0);
82+
// }
11283
}

0 commit comments

Comments
 (0)