Clover Coverage Report - Kuali Student 1.3.0-SNAPSHOT (Aggregated)
Coverage timestamp: Thu Apr 28 2011 05:03:32 EDT
../../../../img/srcFileCovDistChart0.png 2% of files have more coverage
27   94   13   3.38
10   60   0.48   8
8     1.62  
1    
 
  DerbyDBCreationLifecycle       Line # 27 27 0% 13 45 0% 0.0
 
No Tests
 
1    /*
2    * Copyright 2007 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10    * Unless required by applicable law or agreed to in writing, software
11    * distributed under the License is distributed on an "AS IS" BASIS,
12    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13    * See the License for the specific language governing permissions and
14    * limitations under the License.
15    */
16    package org.kuali.rice.test;
17   
18    import java.io.File;
19    import java.sql.DriverManager;
20   
21    import org.apache.log4j.Logger;
22    import org.kuali.rice.core.api.config.ConfigurationException;
23    import org.kuali.rice.core.api.config.property.Config;
24    import org.kuali.rice.core.api.config.property.ConfigContext;
25    import org.kuali.rice.core.api.lifecycle.Lifecycle;
26   
 
27    public class DerbyDBCreationLifecycle implements Lifecycle {
28   
29    private static final Logger LOG = Logger.getLogger(DerbyDBCreationLifecycle.class);
30   
31    private String sqlFile;
32   
 
33  0 toggle public DerbyDBCreationLifecycle(String sqlFile) {
34  0 this.setSqlFile(sqlFile);
35    }
36   
 
37  0 toggle public boolean isStarted() {
38  0 return false;
39    }
40   
 
41  0 toggle public void start() throws Exception {
42  0 if (! isDoingDerby()) {
43  0 LOG.info("Not using the Derby database for testing or no ddl file found");
44  0 return;
45    }
46   
47    //just checking that the driver's on the classpath and the url is valid
48  0 Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
49  0 DriverManager.getConnection(ConfigContext.getCurrentContextConfig().getProperty("datasource.url")).close();
50   
51  0 String dbLocation = ConfigContext.getCurrentContextConfig().getProperty("db.location");
52  0 File db = new File(dbLocation);
53  0 if (! db.exists()) {
54  0 throw new ConfigurationException("Can't find db file " + dbLocation);
55    }
56   
57  0 if (isDerbyDBReadyForTests()) {
58  0 LOG.info("Derby ready for testing");
59  0 return;
60    }
61   
62  0 LOG.info("Setting up Derby for testing");
63  0 LOG.info("Derby connection string: " + ConfigContext.getCurrentContextConfig().getProperty("datasource.url"));
64  0 SQLDataLoader dataLoader = new SQLDataLoader(this.getSqlFile(), ";");
65  0 dataLoader.runSql();
66    }
67   
 
68  0 toggle public void stop() throws Exception {
69   
70    }
71   
 
72  0 toggle private boolean isDerbyDBReadyForTests() {
73  0 return new ClearDatabaseLifecycle().isTestTableInSchema(TestHarnessServiceLocator.getDataSource());
74    }
75   
 
76  0 toggle protected boolean isDoingDerby() {
77  0 if (this.getSqlFile() == null) {
78  0 return false;
79    }
80  0 String dbDriverName = ConfigContext.getCurrentContextConfig().getProperty(Config.DATASOURCE_DRIVER_NAME);
81  0 if (dbDriverName == null) {
82  0 throw new ConfigurationException("No property '" + Config.DATASOURCE_DRIVER_NAME + "' found");
83    }
84  0 return dbDriverName.toLowerCase().contains("derby");
85    }
86   
 
87  0 toggle public String getSqlFile() {
88  0 return sqlFile;
89    }
90   
 
91  0 toggle public void setSqlFile(String sqlFile) {
92  0 this.sqlFile = sqlFile;
93    }
94    }