View Javadoc

1   package org.codehaus.modello;
2   
3   /*
4    * Copyright (c) 2005, Codehaus.org
5    *
6    * Permission is hereby granted, free of charge, to any person obtaining a copy of
7    * this software and associated documentation files (the "Software"), to deal in
8    * the Software without restriction, including without limitation the rights to
9    * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
10   * of the Software, and to permit persons to whom the Software is furnished to do
11   * so, subject to the following conditions:
12   *
13   * The above copyright notice and this permission notice shall be included in all
14   * copies or substantial portions of the Software.
15   *
16   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22   * SOFTWARE.
23   */
24  
25  import java.io.File;
26  import java.io.IOException;
27  import java.io.Reader;
28  import java.util.Properties;
29  
30  import org.codehaus.plexus.PlexusTestCase;
31  import org.codehaus.plexus.util.FileUtils;
32  import org.codehaus.plexus.util.ReaderFactory;
33  
34  /**
35   * Abstract class for Modello plugins unit-tests that check output generated by the plugin.
36   *
37   * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
38   */
39  public abstract class AbstractModelloGeneratorTest
40      extends PlexusTestCase
41  {
42      private String name;
43  
44      protected AbstractModelloGeneratorTest( String name )
45      {
46          this.name = name;
47      }
48  
49      protected void setUp()
50          throws Exception
51      {
52          super.setUp();
53  
54          FileUtils.deleteDirectory( getOutputDirectory() );
55  
56          assertTrue( getOutputDirectory().mkdirs() );
57      }
58  
59      protected File getOutputDirectory()
60      {
61          return getTestFile( "target/generator-results/" + getName() );
62      }
63  
64      public String getName()
65      {
66          return name;
67      }
68  
69      protected Properties getModelloParameters()
70      {
71          Properties parameters = new Properties();
72  
73          parameters.setProperty( "modello.output.directory", getOutputDirectory().getAbsolutePath() );
74  
75          return parameters;
76      }
77  
78      protected Properties getModelloParameters( String version )
79      {
80          Properties parameters = getModelloParameters( version, true );
81  
82          return parameters;
83      }
84  
85      protected Properties getModelloParameters( String version, boolean useJava5 )
86      {
87          Properties parameters = getModelloParameters();
88  
89          parameters.setProperty( "modello.package.with.version", Boolean.toString( false ) );
90          parameters.setProperty( "modello.version", version );
91          parameters.setProperty( "modello.output.useJava5", Boolean.toString( useJava5 ) );
92  
93          return parameters;
94      }
95  
96      protected Reader getXmlResourceReader( String name )
97          throws IOException
98      {
99          return ReaderFactory.newXmlReader( getClass().getResourceAsStream( name ) );
100     }
101 }