1   package org.apache.torque.mojo;
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 java.io.File;
23  
24  import org.apache.maven.artifact.repository.ArtifactRepository;
25  import org.apache.maven.artifact.repository.DefaultArtifactRepository;
26  import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
27  import org.apache.maven.project.MavenProject;
28  import org.apache.maven.project.MavenProjectBuilder;
29  import org.apache.torque.mojo.OMMojo;
30  import org.codehaus.plexus.PlexusTestCase;
31  
32  
33  /**
34   * Tests the TorqueOMMojo
35   *
36   * @author Rapha�l Pi�roni (rafale_at_codehaus.org)
37   */
38  public class TorqueOMMojoTest
39          extends PlexusTestCase
40  {
41      /**
42       * Test of execute method of class org.apache.torque.mojo.TorqueOMMojo;.
43       *
44       * @throws Exception if the test fails.
45       */
46      public void testExecute()
47              throws Exception
48      {
49          System.out.println ("execute");
50  
51          MavenProjectBuilder builder
52                  = (MavenProjectBuilder) lookup(MavenProjectBuilder.ROLE);
53  
54          ArtifactRepositoryLayout localRepositoryLayout
55                  = (ArtifactRepositoryLayout) lookup(
56                          ArtifactRepositoryLayout.ROLE,
57                          "default");
58  
59          ArtifactRepository localRepository
60                  = new DefaultArtifactRepository(
61                          "local",
62                          "file://" + getBasedir() + File.separator
63                              + "target/test-classes/repository",
64                          localRepositoryLayout);
65  
66          MavenProject mavenProject = builder.buildWithDependencies(
67                  new File(
68                      getBasedir(),
69                      "target/test-classes/projects/TorqueOMMojoTest/pom.xml"),
70                  localRepository,
71                  null);
72  
73          OMMojo instance = new OMMojo();
74  
75          instance.setProject(mavenProject);
76  
77          instance.setOutputDir(
78                  mavenProject.getBuild().getSourceDirectory());
79  
80          instance.setContextPropertiesPath(
81                  mavenProject.getBuild().getDirectory()
82                      + "/torque/context.om.properties");
83  
84          instance.setBaseOutputDir(
85                  mavenProject.getBuild().getDirectory()
86                      + "/generated-sources/torque");
87  
88  
89          instance.setSchemaDir(
90                  mavenProject.getBasedir() + "/src/main/torque/schema");
91  
92          instance.setUseClasspath(true);
93  
94          instance.setBasePrefix("Base");
95  
96          instance.setSubpackageMap("map");
97  
98          instance.setTargetPackage("org.apache.torque.mojo.test");
99  
100         instance.setSchemaIncludes("*schema.xml");
101 
102         instance.setSchemaExcludes("id-table-schema.xml");
103 
104         instance.setReportFile("../../../target/torque/torque."
105                 + mavenProject.getArtifact().getArtifactId()
106                 + "."
107                 + "om.generation");
108 
109         instance.setBaseReportFile("../../torque/torque."
110                 + mavenProject.getArtifact().getArtifactId()
111                 + "."
112                 + "om.base.generation");
113 
114         instance.execute();
115 
116         String generatedSourcesBasePackageDir
117                 = "generated-sources/torque/org/apache/torque/mojo/test/";
118 
119         String generatedSourcesPackageDir
120                 = "src/main/java/org/apache/torque/mojo/test/";
121 
122         assertTrue(
123                 "BaseTestTable1.java must exist",
124                 new File(
125                         mavenProject.getBuild().getDirectory(),
126                         generatedSourcesBasePackageDir + "BaseTestTable1.java")
127                     .exists());
128 
129         assertTrue(
130                 "BaseTestTable2.java must exist",
131                 new File(
132                         mavenProject.getBuild().getDirectory(),
133                         generatedSourcesBasePackageDir + "BaseTestTable2.java")
134                     .exists());
135 
136         assertTrue(
137                 "BaseTestTable1Peer.java must exist",
138                 new File(
139                         mavenProject.getBuild().getDirectory(),
140                         generatedSourcesBasePackageDir + "BaseTestTable1Peer.java")
141                     .exists());
142 
143         assertTrue(
144                 "BaseTestTable2Peer.java must exist",
145                 new File(
146                         mavenProject.getBuild().getDirectory(),
147                         generatedSourcesBasePackageDir + "BaseTestTable2Peer.java")
148                     .exists());
149 
150         assertTrue(
151                 "TestTable1.java must exist",
152                 new File(
153                         mavenProject.getBasedir(),
154                         generatedSourcesPackageDir + "TestTable1.java")
155                     .exists());
156 
157         assertTrue(
158                 "TestTable2.java must exist",
159                 new File(
160                         mavenProject.getBasedir(),
161                         generatedSourcesPackageDir + "TestTable2.java")
162                     .exists());
163 
164         assertTrue(
165                 "TestTable1Peer.java must exist",
166                 new File(
167                         mavenProject.getBasedir(),
168                         generatedSourcesPackageDir + "TestTable1Peer.java")
169                     .exists());
170 
171         assertTrue(
172                 "TestTable2Peer.java must exist",
173                 new File(
174                         mavenProject.getBasedir(),
175                         generatedSourcesPackageDir + "TestTable2Peer.java")
176                     .exists());
177 
178         assertTrue(
179                 "TestTable1MapBuilder.java must exist",
180                 new File(
181                         mavenProject.getBuild().getDirectory(),
182                         generatedSourcesBasePackageDir
183                             + "map/TestTable1MapBuilder.java")
184                     .exists());
185 
186         assertTrue(
187                 "TestTable2MapBuilder.java must exist",
188                 new File(
189                         mavenProject.getBuild ().getDirectory(),
190                         generatedSourcesBasePackageDir
191                             + "map/TestTable2MapBuilder.java")
192                     .exists());
193 
194         assertTrue(
195                 "Project does not contain "
196                     + mavenProject.getBuild().getDirectory()
197                     + "/generated-sources/torque"
198                     + " as compile source",
199                 mavenProject.getCompileSourceRoots().contains(
200                         mavenProject.getBuild ().getDirectory()
201                             + "/generated-sources/torque"));
202     }
203 }