1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.testing;
20
21
22 import javax.inject.Inject;
23
24 import java.io.File;
25
26 import org.apache.maven.api.plugin.testing.InjectMojo;
27 import org.apache.maven.api.plugin.testing.MojoParameter;
28 import org.apache.maven.api.plugin.testing.MojoTest;
29 import org.apache.maven.execution.MavenSession;
30 import org.apache.maven.plugin.logging.Log;
31 import org.junit.jupiter.api.BeforeEach;
32 import org.junit.jupiter.api.Nested;
33 import org.junit.jupiter.api.Test;
34 import org.junit.jupiter.api.io.TempDir;
35 import org.mockito.Mockito;
36
37 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
38
39
40
41
42 @MojoTest(realRepositorySession = true)
43 class SimpleResolveMojoTest {
44
45 @TempDir
46 private File tempDir;
47
48
49 @Inject
50 private MavenSession session;
51
52 @Inject
53 private Log log;
54
55 @BeforeEach
56 void beforeEach() {
57
58
59 session.getRequest().setLocalRepositoryPath(tempDir);
60
61
62
63
64
65 }
66
67 @Test
68 @InjectMojo(goal = "simple-resolve")
69 @MojoParameter(name = "artifact", value = "org.apache.commons:commons-lang3:3.20.0")
70 void artifactShouldBeResolved(SimpleResolveMojo mojo) {
71 assertDoesNotThrow(mojo::execute);
72
73 Mockito.verify(log, Mockito.times(1)).info(Mockito.contains("Resolved artifact to"));
74 }
75
76 @Nested
77 class NestedTest {
78 @Test
79 @InjectMojo(goal = "simple-resolve")
80 @MojoParameter(name = "artifact", value = "org.apache.commons:commons-lang3:3.20.0")
81 void artifactShouldBeResolved(SimpleResolveMojo mojo) {
82 assertDoesNotThrow(mojo::execute);
83
84 Mockito.verify(log, Mockito.times(1)).info(Mockito.contains("Resolved artifact to"));
85 }
86 }
87 }
88