View Javadoc
1   package org.apache.maven.archetype.old.descriptor;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import junit.framework.Test;
23  import junit.framework.TestCase;
24  import junit.framework.TestSuite;
25  import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
26  
27  import java.io.IOException;
28  import java.io.StringReader;
29  
30  /**
31   * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
32   * @version $Id$
33   */
34  public class ArchetypeDescriptorBuilderTest
35      extends TestCase
36  {
37      public ArchetypeDescriptorBuilderTest( String str )
38      {
39          super( str );
40      }
41  
42      public static Test suite()
43      {
44          TestSuite suite = new TestSuite();
45          suite.addTest( new ArchetypeDescriptorBuilderTest( "testBuilder" ) );
46          suite.addTest( new ArchetypeDescriptorBuilderTest( "testBuild" ) );
47          return suite;
48      }
49  
50      public void testBuilder()
51          throws Exception
52      {
53          String xml = "<archetype>" + "  <id>standard</id>" + "  <sources>" + "    <source>source0</source>" +
54              "    <source>source1</source>" + "  </sources>" + "  <resources>" + "    <resource>resource0</resource>" +
55              "    <resource>resource1</resource>" + "  </resources>" + "  <testSources>" +
56              "    <source>testSource0</source>" + "    <source>testSource1</source>" + "  </testSources>" +
57              "  <testResources>" + "    <resource>testResource0</resource>" + "    <resource>testResource1</resource>" +
58              "  </testResources>" + "</archetype>";
59  
60          ArchetypeDescriptorBuilder builder = new ArchetypeDescriptorBuilder();
61  
62          ArchetypeDescriptor descriptor = builder.build( new StringReader( xml ) );
63  
64          assertEquals( "standard", descriptor.getId() );
65  
66          assertEquals( 2, descriptor.getSources().size() );
67  
68          assertEquals( "source0", descriptor.getSources().get( 0 ) );
69  
70          assertNotNull( descriptor.getSourceDescriptor( "source0" ) );
71  
72          assertEquals( true, descriptor.getSourceDescriptor( "source0" ).isFiltered() );
73  
74          assertNotNull( descriptor.getSourceDescriptor( "source0" ).getEncoding() );
75  
76          assertEquals( "source1", descriptor.getSources().get( 1 ) );
77  
78          assertNotNull( descriptor.getSourceDescriptor( "source1" ) );
79  
80          assertEquals( true, descriptor.getSourceDescriptor( "source1" ).isFiltered() );
81  
82          assertNotNull( descriptor.getSourceDescriptor( "source1" ).getEncoding() );
83  
84          assertEquals( 2, descriptor.getResources().size() );
85  
86          assertEquals( "resource0", descriptor.getResources().get( 0 ) );
87  
88          assertNotNull( descriptor.getResourceDescriptor( "resource0" ) );
89  
90          assertEquals( true, descriptor.getResourceDescriptor( "resource0" ).isFiltered() );
91  
92          assertNotNull( descriptor.getResourceDescriptor( "resource0" ).getEncoding() );
93  
94          assertEquals( "resource1", descriptor.getResources().get( 1 ) );
95  
96          assertNotNull( descriptor.getResourceDescriptor( "resource1" ) );
97  
98          assertEquals( true, descriptor.getResourceDescriptor( "resource1" ).isFiltered() );
99  
100         assertNotNull( descriptor.getResourceDescriptor( "resource1" ).getEncoding() );
101 
102         assertEquals( 2, descriptor.getTestSources().size() );
103 
104         assertEquals( "testSource0", descriptor.getTestSources().get( 0 ) );
105 
106         assertNotNull( descriptor.getTestSourceDescriptor( "testSource0" ) );
107 
108         assertEquals( true, descriptor.getTestSourceDescriptor( "testSource0" ).isFiltered() );
109 
110         assertNotNull( descriptor.getTestSourceDescriptor( "testSource0" ).getEncoding() );
111 
112         assertEquals( "testSource1", descriptor.getTestSources().get( 1 ) );
113 
114         assertNotNull( descriptor.getTestSourceDescriptor( "testSource1" ) );
115 
116         assertEquals( true, descriptor.getTestSourceDescriptor( "testSource1" ).isFiltered() );
117 
118         assertNotNull( descriptor.getTestSourceDescriptor( "testSource1" ).getEncoding() );
119 
120         assertEquals( 2, descriptor.getTestResources().size() );
121 
122         assertEquals( "testResource0", descriptor.getTestResources().get( 0 ) );
123 
124         assertNotNull( descriptor.getTestResourceDescriptor( "testResource0" ) );
125 
126         assertEquals( true, descriptor.getTestResourceDescriptor( "testResource0" ).isFiltered() );
127 
128         assertNotNull( descriptor.getTestResourceDescriptor( "testResource0" ).getEncoding() );
129 
130         assertEquals( "testResource1", descriptor.getTestResources().get( 1 ) );
131 
132         assertNotNull( descriptor.getTestResourceDescriptor( "testResource1" ) );
133 
134         assertEquals( true, descriptor.getTestResourceDescriptor( "testResource1" ).isFiltered() );
135 
136         assertNotNull( descriptor.getTestResourceDescriptor( "testResource1" ).getEncoding() );
137     }
138 
139     public void testBuild()
140         throws IOException, XmlPullParserException
141     {
142         String xml = "<archetype>" + "  <id>standard</id>" + "  <sources>" +
143             "    <source encoding=\"utf-8\">source0</source>" + "    <source encoding=\"utf-8\">source1</source>" +
144             "  </sources>" + "  <resources>" + "    <resource filtered=\"false\">resource0</resource>" +
145             "    <resource encoding=\"iso-8859-1\">resource1</resource>" + "  </resources>" + "  <testSources>" +
146             "    <source encoding=\"utf-8\">testSource0</source>" +
147             "    <source encoding=\"utf-8\">testSource1</source>" + "  </testSources>" + "  <testResources>" +
148             "    <resource encoding=\"us-ascii\">testResource0</resource>" +
149             "    <resource filtered=\"false\">testResource1</resource>" + "  </testResources>" + "  <siteResources>" +
150             "    <resource filtered=\"false\">siteResource0</resource>" +
151             "    <resource encoding=\"utf-16\">siteResource1</resource>" + "  </siteResources>" + "</archetype>";
152 
153         ArchetypeDescriptorBuilder builder = new ArchetypeDescriptorBuilder();
154 
155         ArchetypeDescriptor descriptor = builder.build( new StringReader( xml ) );
156 
157         assertEquals( "standard", descriptor.getId() );
158 
159         assertEquals( 2, descriptor.getSources().size() );
160 
161         assertEquals( "source0", descriptor.getSources().get( 0 ) );
162 
163         assertNotNull( descriptor.getSourceDescriptor( "source0" ) );
164 
165         assertEquals( true, descriptor.getSourceDescriptor( "source0" ).isFiltered() );
166 
167         assertEquals( "utf-8", descriptor.getSourceDescriptor( "source0" ).getEncoding() );
168 
169         assertEquals( "source1", descriptor.getSources().get( 1 ) );
170 
171         assertNotNull( descriptor.getSourceDescriptor( "source1" ) );
172 
173         assertEquals( true, descriptor.getSourceDescriptor( "source1" ).isFiltered() );
174 
175         assertEquals( "utf-8", descriptor.getSourceDescriptor( "source1" ).getEncoding() );
176 
177         assertEquals( 2, descriptor.getResources().size() );
178 
179         assertEquals( "resource0", descriptor.getResources().get( 0 ) );
180 
181         assertNotNull( descriptor.getResourceDescriptor( "resource0" ) );
182 
183         assertEquals( false, descriptor.getResourceDescriptor( "resource0" ).isFiltered() );
184 
185         assertNotNull( descriptor.getResourceDescriptor( "resource0" ).getEncoding() );
186 
187         assertEquals( "resource1", descriptor.getResources().get( 1 ) );
188 
189         assertNotNull( descriptor.getResourceDescriptor( "resource1" ) );
190 
191         assertEquals( true, descriptor.getResourceDescriptor( "resource1" ).isFiltered() );
192 
193         assertEquals( "iso-8859-1", descriptor.getResourceDescriptor( "resource1" ).getEncoding() );
194 
195         assertEquals( 2, descriptor.getTestSources().size() );
196 
197         assertEquals( "testSource0", descriptor.getTestSources().get( 0 ) );
198 
199         assertNotNull( descriptor.getTestSourceDescriptor( "testSource0" ) );
200 
201         assertEquals( true, descriptor.getTestSourceDescriptor( "testSource0" ).isFiltered() );
202 
203         assertEquals( "utf-8", descriptor.getTestSourceDescriptor( "testSource0" ).getEncoding() );
204 
205         assertEquals( "testSource1", descriptor.getTestSources().get( 1 ) );
206 
207         assertNotNull( descriptor.getTestSourceDescriptor( "testSource1" ) );
208 
209         assertEquals( true, descriptor.getTestSourceDescriptor( "testSource1" ).isFiltered() );
210 
211         assertEquals( "utf-8", descriptor.getTestSourceDescriptor( "testSource1" ).getEncoding() );
212 
213         assertEquals( 2, descriptor.getTestResources().size() );
214 
215         assertEquals( "testResource0", descriptor.getTestResources().get( 0 ) );
216 
217         assertNotNull( descriptor.getTestResourceDescriptor( "testResource0" ) );
218 
219         assertEquals( true, descriptor.getTestResourceDescriptor( "testResource0" ).isFiltered() );
220 
221         assertEquals( "us-ascii", descriptor.getTestResourceDescriptor( "testResource0" ).getEncoding() );
222 
223         assertEquals( "testResource1", descriptor.getTestResources().get( 1 ) );
224 
225         assertNotNull( descriptor.getTestResourceDescriptor( "testResource1" ) );
226 
227         assertEquals( false, descriptor.getTestResourceDescriptor( "testResource1" ).isFiltered() );
228 
229         assertNotNull( descriptor.getTestResourceDescriptor( "testResource1" ).getEncoding() );
230 
231         assertEquals( 2, descriptor.getSiteResources().size() );
232 
233         assertEquals( "siteResource0", descriptor.getSiteResources().get( 0 ) );
234 
235         assertNotNull( descriptor.getSiteResourceDescriptor( "siteResource0" ) );
236 
237         assertEquals( false, descriptor.getSiteResourceDescriptor( "siteResource0" ).isFiltered() );
238 
239         assertNotNull( descriptor.getSiteResourceDescriptor( "siteResource0" ).getEncoding() );
240 
241         assertEquals( "siteResource1", descriptor.getSiteResources().get( 1 ) );
242 
243         assertNotNull( descriptor.getSiteResourceDescriptor( "siteResource1" ) );
244 
245         assertEquals( true, descriptor.getSiteResourceDescriptor( "siteResource1" ).isFiltered() );
246 
247         assertEquals( "utf-16", descriptor.getSiteResourceDescriptor( "siteResource1" ).getEncoding() );
248     }
249 }