1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.release;
20
21 import org.apache.maven.api.di.Provides;
22 import org.apache.maven.api.plugin.testing.InjectMojo;
23 import org.apache.maven.api.plugin.testing.MojoTest;
24 import org.apache.maven.shared.release.ReleaseCleanRequest;
25 import org.apache.maven.shared.release.ReleaseManager;
26 import org.junit.jupiter.api.Test;
27 import org.junit.jupiter.api.extension.ExtendWith;
28 import org.mockito.ArgumentCaptor;
29 import org.mockito.Mock;
30 import org.mockito.junit.jupiter.MockitoExtension;
31
32 import static org.junit.jupiter.api.Assertions.assertEquals;
33 import static org.mockito.Mockito.verify;
34 import static org.mockito.Mockito.verifyNoMoreInteractions;
35
36
37
38
39
40
41 @ExtendWith(MockitoExtension.class)
42 @MojoTest
43 class CleanReleaseMojoTest {
44
45 @Mock
46 private ReleaseManager releaseManagerMock;
47
48 @Provides
49 private ReleaseManager releaseManager() {
50 return releaseManagerMock;
51 }
52
53 @Test
54 @InjectMojo(goal = "clean")
55 void testClean(CleanReleaseMojo mojo) throws Exception {
56
57 ArgumentCaptor<ReleaseCleanRequest> request = ArgumentCaptor.forClass(ReleaseCleanRequest.class);
58
59
60 mojo.execute();
61
62
63 verify(releaseManagerMock).clean(request.capture());
64
65 assertEquals(mojo.getReactorProjects(), request.getValue().getReactorProjects());
66
67 verifyNoMoreInteractions(releaseManagerMock);
68 }
69 }