1   package org.apache.maven.changes;
2   
3   /* ====================================================================
4    *   Copyright 2001-2004 The Apache Software Foundation.
5    *
6    *   Licensed under the Apache License, Version 2.0 (the "License");
7    *   you may not use this file except in compliance with the License.
8    *   You may obtain a copy of the License at
9    *
10   *       http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *   Unless required by applicable law or agreed to in writing, software
13   *   distributed under the License is distributed on an "AS IS" BASIS,
14   *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   *   See the License for the specific language governing permissions and
16   *   limitations under the License.
17   * ====================================================================
18   */
19  
20  import junit.framework.TestCase;
21  
22  import java.io.File;
23  import java.util.List;
24  
25  import org.dom4j.Element;
26  import org.dom4j.Document;
27  import org.dom4j.io.SAXReader;
28  
29  /**
30   */
31  public class ReleaseVersionTest
32      extends TestCase
33  {
34      /**
35       * Constructor.
36       *
37       * @param name Name of the test.
38       */
39      public ReleaseVersionTest( String name )
40      {
41          super( name );
42      }
43  
44      public void testExistingReleaseTargetVersionReleased()
45          throws Exception
46      {
47          File changesFile = new File( System.getProperty( "basedir" ),
48              "/src/test-data/test-existing-release-target-version-released.xml" );
49          Document doc = ReleaseVersion.transformVersion( changesFile, "1.1", "1.2", "2004-04-21" );
50  
51          assertNull( "check transform required", doc );
52  
53          SAXReader r = new SAXReader();
54  
55          doc = r.read( changesFile );
56  
57          List nodes = doc.selectNodes( "/document/body/release" );
58  
59          assertEquals( "check exactly 1 release", 1, nodes.size() );
60  
61          Element release = ( Element ) nodes.get( 0 );
62  
63          assertEquals( "Check version is 1.2", "1.2", release.attribute( "version" ).getText() );
64          assertEquals( "Check date is 2003-03-23", "2003-03-23", release.attribute( "date" ).getText() );
65      }
66  
67      public void testExistingReleaseTargetVersionInCvs()
68          throws Exception
69      {
70          File changesFile = new File( System.getProperty( "basedir" ),
71              "/src/test-data/test-existing-release-target-version-in-cvs.xml" );
72          Document doc = ReleaseVersion.transformVersion( changesFile, "1.1", "1.2", "2004-04-21" );
73  
74          assertNotNull( "check transform required", doc );
75  
76          List nodes = doc.selectNodes( "/document/body/release" );
77  
78          assertEquals( "check exactly 1 release", 1, nodes.size() );
79  
80          Element release = ( Element ) nodes.get( 0 );
81  
82          assertEquals( "Check version is 1.2", "1.2", release.attribute( "version" ).getText() );
83          assertEquals( "Check date is 2004-04-21", "2004-04-21", release.attribute( "date" ).getText() );
84      }
85  
86      public void testExistingReleaseCurrentVersionReleasedAndTargetVersionInCvs()
87          throws Exception
88      {
89          File changesFile = new File( System.getProperty( "basedir" ),
90              "/src/test-data/test-existing-release-current-version-released-and-target-version-in-cvs.xml" );
91          Document doc = ReleaseVersion.transformVersion( changesFile, "1.1", "1.2", "2004-04-21" );
92  
93          assertNotNull( "check transform required", doc );
94  
95          List nodes = doc.selectNodes( "/document/body/release" );
96  
97          assertEquals( "check exactly 2 releases", 2, nodes.size() );
98  
99          Element release = ( Element ) nodes.get( 0 );
100 
101         assertEquals( "Check version is 1.2", "1.2", release.attribute( "version" ).getText() );
102         assertEquals( "Check date is 2004-04-21", "2004-04-21", release.attribute( "date" ).getText() );
103 
104         release = ( Element ) nodes.get( 1 );
105 
106         assertEquals( "Check version is 1.1", "1.1", release.attribute( "version" ).getText() );
107         assertEquals( "Check date is 2003-03-23", "2003-03-23", release.attribute( "date" ).getText() );
108     }
109 
110     public void testExistingReleaseCurrentVersionReleasedAndTargetVersionReleased()
111         throws Exception
112     {
113         File changesFile = new File( System.getProperty( "basedir" ),
114             "/src/test-data/test-existing-release-current-version-released-and-target-version-released.xml" );
115         Document doc = ReleaseVersion.transformVersion( changesFile, "1.1", "1.2", "2004-04-21" );
116 
117         assertNull( "check transform required", doc );
118 
119         SAXReader r = new SAXReader();
120 
121         doc = r.read( changesFile );
122 
123         List nodes = doc.selectNodes( "/document/body/release" );
124 
125         assertEquals( "check exactly 2 releases", 2, nodes.size() );
126 
127         Element release = ( Element ) nodes.get( 0 );
128 
129         assertEquals( "Check version is 1.2", "1.2", release.attribute( "version" ).getText() );
130         assertEquals( "Check date is 2003-03-23", "2003-03-23", release.attribute( "date" ).getText() );
131 
132         release = ( Element ) nodes.get( 1 );
133 
134         assertEquals( "Check version is 1.1", "1.1", release.attribute( "version" ).getText() );
135         assertEquals( "Check date is 2002-02-22", "2002-02-22", release.attribute( "date" ).getText() );
136     }
137 
138     public void testExistingReleaseCurrentVersionReleased()
139         throws Exception
140     {
141         File changesFile = new File( System.getProperty( "basedir" ),
142             "/src/test-data/test-existing-release-current-version-released.xml" );
143         Document doc = ReleaseVersion.transformVersion( changesFile, "1.2", "1.2", "2004-04-21" );
144 
145         assertNull( "check transform required", doc );
146 
147         SAXReader r = new SAXReader();
148 
149         doc = r.read( changesFile );
150 
151         List nodes = doc.selectNodes( "/document/body/release" );
152 
153         assertEquals( "check exactly 1 release", 1, nodes.size() );
154 
155         Element release = ( Element ) nodes.get( 0 );
156 
157         assertEquals( "Check version is 1.2", "1.2", release.attribute( "version" ).getText() );
158         assertEquals( "Check date is 2004-04-21", "2003-03-23", release.attribute( "date" ).getText() );
159     }
160 
161     public void testExistingReleaseCurrentVersionInCvs()
162         throws Exception
163     {
164         Document doc = ReleaseVersion.transformVersion(
165             new File( System.getProperty( "basedir" ),
166                 "/src/test-data/test-existing-release-current-version-in-cvs.xml" ),
167             "1.2-SNAPSHOT", "1.2", "2004-04-21" );
168 
169         assertNotNull( "check transform required", doc );
170 
171         List nodes = doc.selectNodes( "/document/body/release" );
172 
173         assertEquals( "check exactly 1 release", 1, nodes.size() );
174 
175         Element release = ( Element ) nodes.get( 0 );
176 
177         assertEquals( "Check version is 1.2", "1.2", release.attribute( "version" ).getText() );
178         assertEquals( "Check date is 2004-04-21", "2004-04-21", release.attribute( "date" ).getText() );
179     }
180 
181     public void testOneUnrelatedRelease()
182         throws Exception
183     {
184         File changesFile = new File( System.getProperty( "basedir" ), "/src/test-data/test-one-unrelated-release.xml" );
185         Document doc = ReleaseVersion.transformVersion( changesFile, "1.2-SNAPSHOT", "1.2", "2004-04-21" );
186 
187         assertNull( "check transform required", doc );
188 
189         SAXReader r = new SAXReader();
190         doc = r.read( changesFile );
191 
192         List nodes = doc.selectNodes( "/document/body/release" );
193 
194         assertEquals( "check exactly 1 releases", 1, nodes.size() );
195 
196         Element release = ( Element ) nodes.get( 0 );
197 
198         assertEquals( "Check version is 1.1", "1.1", release.attribute( "version" ).getText() );
199         assertEquals( "Check date is 2003-03-23", "2003-03-23", release.attribute( "date" ).getText() );
200 
201         /* assumes addition of elements
202         assertNotNull( "check transform required", doc );
203 
204         List nodes = doc.selectNodes( "/document/body/release" );
205 
206         assertEquals( "check exactly 2 releases", 2, nodes.size() );
207 
208         Element release = ( Element ) nodes.get( 0 );
209 
210         assertEquals( "Check version is 1.2", "1.2", release.attribute( "version" ).getText() );
211         assertEquals( "Check date is 2004-04-21", "2004-04-21", release.attribute( "date" ).getText() );
212 
213         release = ( Element ) nodes.get( 1 );
214         assertEquals( "Check version is 1.1", "1.1", release.attribute( "version" ).getText() );
215         assertEquals( "Check date is 2003-03-23", "2003-03-23", release.attribute( "date" ).getText() );
216 */
217     }
218 
219     public void testNoReleases()
220         throws Exception
221     {
222         File changesFile = new File( System.getProperty( "basedir" ), "/src/test-data/test-no-versions.xml" );
223         Document doc = ReleaseVersion.transformVersion( changesFile, "1.0-SNAPSHOT", "1.0", "2004-04-21" );
224 
225         assertNull( "check transform required", doc );
226         SAXReader r = new SAXReader();
227         doc = r.read( changesFile );
228 
229         List nodes = doc.selectNodes( "/document/body/release" );
230 
231         assertEquals( "check no release", 0, nodes.size() );
232 
233         /* assumes addition of elements
234         assertNotNull( "check transform required", doc );
235 
236         List nodes = doc.selectNodes( "/document/body/release" );
237 
238         assertEquals( "check only 1 release", 1, nodes.size() );
239 
240         Element release = ( Element ) nodes.get( 0 );
241 
242         assertEquals( "Check version is 1.0", "1.0", release.attribute( "version" ).getText() );
243         assertEquals( "Check date is 2004-04-21", "2004-04-21", release.attribute( "date" ).getText() );
244         */
245     }
246 }
247