1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.enforcer.rules;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 import org.apache.maven.artifact.repository.ArtifactRepository;
25 import org.apache.maven.artifact.repository.MavenArtifactRepository;
26 import org.apache.maven.enforcer.rule.api.EnforcerLogger;
27 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
28 import org.apache.maven.project.MavenProject;
29 import org.junit.jupiter.api.BeforeEach;
30 import org.junit.jupiter.api.Test;
31 import org.junit.jupiter.api.extension.ExtendWith;
32 import org.mockito.InjectMocks;
33 import org.mockito.Mock;
34 import org.mockito.junit.jupiter.MockitoExtension;
35
36 import static org.junit.jupiter.api.Assertions.fail;
37 import static org.mockito.Mockito.mock;
38 import static org.mockito.Mockito.when;
39
40
41
42
43
44
45 @ExtendWith(MockitoExtension.class)
46 class TestBannedRepositories {
47
48 @Mock
49 private MavenProject project;
50
51 @InjectMocks
52 private BannedRepositories rule;
53
54 @BeforeEach
55 public void setUp() {
56 rule.setLog(mock(EnforcerLogger.class));
57 }
58
59 @Test
60 void testNoCheckRules() throws EnforcerRuleException {
61 ArtifactRepository repo1 = new MavenArtifactRepository("repo1", "http://repo1/", null, null, null);
62 List<ArtifactRepository> repos = new ArrayList<>();
63 repos.add(repo1);
64
65 when(project.getRemoteArtifactRepositories()).thenReturn(repos);
66 when(project.getPluginArtifactRepositories()).thenReturn(repos);
67
68 rule.execute();
69 }
70
71 @Test
72 void testBannedRepositories() {
73 ArtifactRepository repo1 = new MavenArtifactRepository("repo1", "http://repo1/", null, null, null);
74 ArtifactRepository repo2 = new MavenArtifactRepository("repo1", "http://repo1/test", null, null, null);
75 ArtifactRepository repo3 = new MavenArtifactRepository("repo1", "http://repo2/test", null, null, null);
76 List<ArtifactRepository> repos = new ArrayList<>();
77 repos.add(repo1);
78 repos.add(repo2);
79 repos.add(repo3);
80
81 when(project.getRemoteArtifactRepositories()).thenReturn(repos);
82 when(project.getPluginArtifactRepositories()).thenReturn(repos);
83
84 List<String> bannedRepositories = new ArrayList<>();
85 String pattern1 = "http://repo1/*";
86
87 bannedRepositories.add(pattern1);
88
89 rule.setBannedRepositories(bannedRepositories);
90
91 try {
92 rule.execute();
93 fail("should throw exception");
94 } catch (EnforcerRuleException e) {
95 }
96 }
97
98 @Test
99 void testAllowedRepositoriesAllOK() throws EnforcerRuleException {
100 ArtifactRepository repo1 = new MavenArtifactRepository("repo1", "http://repo1/", null, null, null);
101 ArtifactRepository repo2 = new MavenArtifactRepository("repo1", "http://repo1/test", null, null, null);
102
103 List<ArtifactRepository> repos = new ArrayList<>();
104 repos.add(repo1);
105 repos.add(repo2);
106
107 when(project.getRemoteArtifactRepositories()).thenReturn(repos);
108 when(project.getPluginArtifactRepositories()).thenReturn(repos);
109
110 List<String> bannedRepositories = new ArrayList<>();
111 String pattern1 = "http://repo1/*";
112
113 bannedRepositories.add(pattern1);
114
115 rule.setAllowedRepositories(bannedRepositories);
116 rule.setAllowedPluginRepositories(bannedRepositories);
117
118 rule.execute();
119 }
120
121 @Test
122 void testAllowedRepositoriesException() {
123 ArtifactRepository repo1 = new MavenArtifactRepository("repo1", "http://repo1/", null, null, null);
124 ArtifactRepository repo2 = new MavenArtifactRepository("repo1", "http://repo1/test", null, null, null);
125 ArtifactRepository repo3 = new MavenArtifactRepository("repo1", "http://repo2/test", null, null, null);
126 List<ArtifactRepository> repos = new ArrayList<>();
127 repos.add(repo1);
128 repos.add(repo2);
129 repos.add(repo3);
130
131 when(project.getRemoteArtifactRepositories()).thenReturn(repos);
132 when(project.getPluginArtifactRepositories()).thenReturn(repos);
133
134 List<String> patterns = new ArrayList<>();
135 String pattern1 = "http://repo1/*";
136
137 patterns.add(pattern1);
138
139 rule.setAllowedPluginRepositories(patterns);
140 rule.setAllowedRepositories(patterns);
141
142 try {
143 rule.execute();
144 fail("should throw exception");
145 } catch (EnforcerRuleException e) {
146 }
147 }
148 }