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 junit.framework.TestCase;
23
24 import org.apache.maven.artifact.versioning.ArtifactVersion;
25 import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
26 import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
27 import org.apache.maven.artifact.versioning.VersionRange;
28 import org.apache.maven.enforcer.rule.api.EnforcerRuleException;
29 import org.apache.maven.plugin.logging.Log;
30 import org.apache.maven.plugin.logging.SystemStreamLog;
31
32
33
34
35
36
37
38 public class TestAbstractVersionEnforcer
39 extends TestCase
40 {
41
42
43
44
45
46
47 public void testContainsVersion()
48 throws InvalidVersionSpecificationException
49 {
50 ArtifactVersion version = new DefaultArtifactVersion( "2.0.5" );
51
52 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.5,)" ), version ) );
53 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.4,)" ), version ) );
54 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.4,2.0.5]" ),
55 version ) );
56 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.4,2.0.6]" ),
57 version ) );
58 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.4,2.0.6)" ),
59 version ) );
60 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0,)" ), version ) );
61 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.0,)" ), version ) );
62
63 assertFalse( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.4,2.0.5)" ),
64 version ) );
65 assertFalse( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.0.6,)" ), version ) );
66 assertFalse( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "(2.0.5,)" ), version ) );
67
68
69 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "2.0" ), version ) );
70 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "2.0.4" ), version ) );
71 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "2.0.5" ), version ) );
72
73 assertFalse( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "2.0.6" ), version ) );
74
75 version = new DefaultArtifactVersion( "1.5.0-7" );
76 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[1.5.0,)" ), version ) );
77 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[1.5,1.6)" ), version ) );
78
79 version = new DefaultArtifactVersion( RequireJavaVersion.normalizeJDKVersion( "1.5.0-07" ) );
80 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[1.5.0,)" ), version ) );
81 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[1.5,1.6)" ), version ) );
82
83
84 version = new DefaultArtifactVersion ("2.1.0-M1-RC12");
85 assertTrue( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.1.0-M1-RC12,)" ), version ) );
86 assertFalse( AbstractVersionEnforcer.containsVersion( VersionRange.createFromVersionSpec( "[2.1.0-M1,)" ), version ) );
87
88 }
89
90
91
92
93
94
95
96
97
98
99 private void enforceFalse( AbstractVersionEnforcer rule, Log log, String var, String range, ArtifactVersion version )
100 {
101 try
102 {
103 rule.enforceVersion( log, var, range, version );
104 fail( "Expected to receive EnforcerRuleException because:" + version + " is not contained by " + range );
105 }
106 catch ( Exception e )
107 {
108 if ( e instanceof EnforcerRuleException )
109 {
110
111
112 }
113 else
114 {
115 fail( "Received wrong exception. Expected EnforcerRuleExeption. Received:" + e.toString() );
116 }
117 }
118 }
119
120
121
122
123 public void testEnforceVersion()
124 {
125 RequireMavenVersion rule = new RequireMavenVersion();
126 ArtifactVersion version = new DefaultArtifactVersion( "2.0.5" );
127 SystemStreamLog log = new SystemStreamLog();
128
129
130
131 try
132 {
133 rule.enforceVersion( log, "test", "[2.0.5,)", version );
134 rule.enforceVersion( log, "test", "[2.0.4,)", version );
135 rule.enforceVersion( log, "test", "[2.0.4,2.0.5]", version );
136 rule.enforceVersion( log, "test", "[2.0.4,2.0.6]", version );
137 rule.enforceVersion( log, "test", "[2.0.4,2.0.6)", version );
138 rule.enforceVersion( log, "test", "[2.0,)", version );
139 rule.enforceVersion( log, "test", "[2.0.0,)", version );
140
141
142 rule.enforceVersion( log, "test", "2.0", version );
143 rule.enforceVersion( log, "test", "2.0.4", version );
144 rule.enforceVersion( log, "test", "2.0.5", version );
145 }
146 catch ( Exception e )
147 {
148 fail( "No Exception expected. Caught:" + e.getLocalizedMessage() );
149
150 }
151
152 enforceFalse( rule, log, "test", "[2.0.6,)", version );
153 enforceFalse( rule, log, "test", "(2.0.5,)", version );
154 enforceFalse( rule, log, "test", "2.0.6", version );
155
156 enforceFalse( rule, log, "test", "[2.0.4,2.0.5)", version );
157
158
159 enforceFalse( rule, log, "test", "[[2.0.4,2.0.5)", version );
160
161 }
162 }