1 package org.apache.maven.plugins.enforcer;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.IOException;
23 import java.util.ArrayList;
24
25 import junit.framework.TestCase;
26
27 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
28 import org.apache.maven.enforcer.rule.api.EnforcerRuleHelper;
29 import org.apache.maven.plugin.testing.ArtifactStubFactory;
30
31
32
33
34
35
36
37 public class TestBannedDependencies
38 extends TestCase
39 {
40
41
42
43
44
45
46 public void testRule()
47 throws IOException
48 {
49 ArtifactStubFactory factory = new ArtifactStubFactory();
50 MockProject project = new MockProject();
51 EnforcerRuleHelper helper = EnforcerTestUtils.getHelper( project );
52 project.setArtifacts( factory.getMixedArtifacts() );
53 project.setDependencyArtifacts( factory.getScopedArtifacts() );
54 BannedDependencies rule = new BannedDependencies();
55
56 ArrayList excludes = new ArrayList();
57 rule.setSearchTransitive( false );
58
59
60 excludes.add( "testGroupId:release:1.0" );
61 rule.setExcludes( excludes );
62
63 execute( rule, helper, false );
64
65
66 excludes.clear();
67 excludes.add( "testGroupId:release" );
68 execute( rule, helper, false );
69
70
71 excludes.clear();
72 excludes.add( "testGroupId" );
73 execute( rule, helper, false );
74
75
76
77 excludes.clear();
78 excludes.add( "g:compile:1.0" );
79 execute( rule, helper, true );
80 rule.setSearchTransitive( true );
81
82
83 excludes.clear();
84 excludes.add( "testGroupId:release:1.0" );
85 execute( rule, helper, true );
86
87
88 excludes.clear();
89 excludes.add( "testGroupId:release" );
90 execute( rule, helper, true );
91
92
93 excludes.clear();
94 excludes.add( "testGroupId" );
95 execute( rule, helper, true );
96
97
98 excludes.clear();
99 excludes.add( "*:release" );
100 execute( rule, helper, true );
101
102
103 excludes.clear();
104 excludes.add( "*:*:1.0" );
105 execute( rule, helper, true );
106
107
108 excludes.clear();
109 excludes.add( "*:release:*" );
110 execute( rule, helper, true );
111
112
113 excludes.clear();
114 excludes.add( "*:release:1.2" );
115 execute( rule, helper, false );
116
117
118 excludes.add( "*:release:*" );
119 execute( rule, helper, true );
120
121
122 excludes.clear();
123 excludes.add( " testGroupId : release : 1.0 " );
124 execute( rule, helper, true );
125
126
127 excludes.clear();
128 excludes.add( ":::" );
129 execute( rule, helper, false );
130 }
131
132
133
134
135
136
137 public void testIncludes()
138 throws IOException
139 {
140 ArtifactStubFactory factory = new ArtifactStubFactory();
141 MockProject project = new MockProject();
142 EnforcerRuleHelper helper = EnforcerTestUtils.getHelper( project );
143 project.setArtifacts( factory.getMixedArtifacts() );
144 project.setDependencyArtifacts( factory.getScopedArtifacts() );
145 BannedDependencies rule = new BannedDependencies();
146
147 ArrayList excludes = new ArrayList();
148 ArrayList includes = new ArrayList();
149
150 rule.setSearchTransitive( false );
151
152 excludes.add( "*" );
153 includes.add( "*" );
154
155 rule.setExcludes( excludes );
156 rule.setIncludes( includes );
157
158 execute( rule, helper, false );
159
160 excludes.clear();
161 excludes.add( "*:runtime" );
162 rule.setExcludes( excludes );
163
164 execute( rule, helper, false );
165
166 includes.clear();
167 includes.add( "*:test" );
168 rule.setIncludes( includes );
169 execute( rule, helper, true );
170 }
171
172
173
174
175
176
177
178
179 private void execute( BannedDependencies rule, EnforcerRuleHelper helper, boolean shouldFail )
180 {
181 try
182 {
183 rule.message = null;
184 rule.execute( helper );
185 if ( shouldFail )
186 {
187 fail( "Exception expected." );
188 }
189 }
190 catch ( EnforcerRuleException e )
191 {
192 if ( !shouldFail )
193 {
194 fail( "No Exception expected:" + e.getLocalizedMessage() );
195 }
196
197 }
198 }
199 }