You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ri...@apache.org on 2006/12/31 07:32:53 UTC

svn commit: r491397 - in /maven/continuum/branches/key-based-refactor/continuum-store: ./ src/test/java/org/apache/maven/continuum/store/ibatis/ src/test/java/org/apache/maven/continuum/store/jdo/ src/test/resources/ src/test/resources/db/

Author: rinku
Date: Sat Dec 30 22:32:52 2006
New Revision: 491397

URL: http://svn.apache.org/viewvc?view=rev&rev=491397
Log:
o  started prepping up for DBUnit.

Added:
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/ibatis/AbstractIbatisStoreTestCase.java   (with props)
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/schema.sql
      - copied unchanged from r490866, maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/schema.sql
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/teardown.sql
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/testData.sql
      - copied unchanged from r491355, maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/testData.sql
Removed:
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/schema.sql
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/testData.sql
Modified:
    maven/continuum/branches/key-based-refactor/continuum-store/pom.xml
    maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/jdo/AbstractJdoStoreTestCase.java

Modified: maven/continuum/branches/key-based-refactor/continuum-store/pom.xml
URL: http://svn.apache.org/viewvc/maven/continuum/branches/key-based-refactor/continuum-store/pom.xml?view=diff&rev=491397&r1=491396&r2=491397
==============================================================================
--- maven/continuum/branches/key-based-refactor/continuum-store/pom.xml (original)
+++ maven/continuum/branches/key-based-refactor/continuum-store/pom.xml Sat Dec 30 22:32:52 2006
@@ -33,6 +33,13 @@
       <artifactId>hsqldb</artifactId>
       <scope>test</scope>
     </dependency>
+    <!-- TODO: Should this be moved to dep mgmt in parent? -->
+    <dependency>
+      <groupId>dbunit</groupId>
+      <artifactId>dbunit</artifactId>
+      <version>2.1</version>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>

Added: maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/ibatis/AbstractIbatisStoreTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/ibatis/AbstractIbatisStoreTestCase.java?view=auto&rev=491397
==============================================================================
--- maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/ibatis/AbstractIbatisStoreTestCase.java (added)
+++ maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/ibatis/AbstractIbatisStoreTestCase.java Sat Dec 30 22:32:52 2006
@@ -0,0 +1,168 @@
+package org.apache.maven.continuum.store.ibatis;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author <a href='mailto:rahul.thakur.xdev@gmail.com'>Rahul Thakur</a>
+ * @version $Id$
+ * @since 1.1
+ */
+public abstract class AbstractIbatisStoreTestCase extends PlexusTestCase
+{
+
+    /**
+     * Default location for SQL test data.
+     */
+    private static final String SQL_TEST_DATA = "src/test/resources/db/testData.sql";
+
+    /**
+     * Password to connect to the target test database instance.
+     */
+    private static final String PASSWORD_TEST_DATABASE = "";
+
+    /**
+     * Username to connect to the target test database instance.
+     */
+    private static final String USERNAME_TEST_DATABASE = "sa";
+
+    /**
+     * Driver class to connect to the target database instance.
+     */
+    private static final String DRIVER_TEST_DATABASE = "org.hsqldb.jdbcDriver";
+
+    /**
+     * JDBC URL to connect to the target test database instance.
+     */
+    private final String URL_TEST_DATABASE = "jdbc:hsqldb:mem:" + getName();
+
+    /**
+     * DDL for Database creation.
+     */
+    private static final File SQL_DATABSE_SCHEMA = getTestFile( getBasedir(), "src/test/resources/db/schema.sql" );
+
+    /**
+     * Creates an instance of Continuum Database for test purposes and loads up
+     * the test data from the specified schema and test data SQL scripts.
+     * 
+     * @throws Exception if there was an error with test database set up.
+     */
+    protected void createBuildDatabase() throws Exception
+    {
+
+    }
+
+    /**
+     * Clean up the Continuum test database.
+     * 
+     * @throws Exception
+     */
+    protected void teardownBuildDatabase() throws Exception
+    {
+
+    }
+
+    /**
+     * Extensions are allowed to implement and return a list of SQL script
+     * {@link File} instances that are to be read and loaded into the target
+     * test database.
+     * 
+     * @return List of locations of SQL scripts
+     */
+    protected List getSQLScripts()
+    {
+        List list = new ArrayList();
+        // add default test data source.
+        list.add( getTestFile( getBasedir(), SQL_TEST_DATA ) );
+        return list;
+    }
+
+    /**
+     * Reads SQL statements from the specified file and uses the passed in
+     * {@link Connection} to populate the target database instance.
+     * 
+     * @param sqlData SQL data to load.
+     * @param connection {@link Connection} instance that wraps an underlying
+     *            connection to target database.
+     * @throws Exception if there was an error reading SQL scripts or executing
+     *             SQL statements for the target Database.
+     */
+    private void loadSQL( File sqlData, Connection connection ) throws Exception
+    {
+        FileInputStream fis = new FileInputStream( sqlData );
+        BufferedReader br = new BufferedReader( new InputStreamReader( fis ) );
+        List sqlList = new ArrayList();
+
+        // build a list of SQL statements to execute here
+        String line = br.readLine();
+        StringBuffer sb = new StringBuffer();
+        while ( null != line )
+        {
+            // only add to sql list if its not empty or not commented
+            if ( !line.trim().equals( PASSWORD_TEST_DATABASE ) && !line.startsWith( "#" ) && !line.startsWith( "--" ) )
+            {
+                sb.append( line );
+                // check if the SQL statement was terminated
+                if ( line.endsWith( ";" ) )
+                {
+                    sqlList.add( sb.toString() );
+                    sb = new StringBuffer();
+                }
+            }
+            line = br.readLine();
+        }
+
+        if ( sb.length() > 0 )
+            sqlList.add( sb.toString() );
+
+        // System.out.println( "Running SQL statements..." );
+
+        // Execute list of SQL statements
+        for ( Iterator it = sqlList.iterator(); it.hasNext(); )
+        {
+            String sql = (String) it.next();
+
+            // System.out.println( sql );
+
+            try
+            {
+                Statement stmt = connection.createStatement();
+                stmt.execute( sql );
+                connection.commit();
+            }
+            catch ( SQLException e )
+            {
+                connection.rollback();
+                throw e;
+            }
+        }
+        // System.out.println( "Done!" );
+    }
+
+}

Propchange: maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/ibatis/AbstractIbatisStoreTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/ibatis/AbstractIbatisStoreTestCase.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/jdo/AbstractJdoStoreTestCase.java
URL: http://svn.apache.org/viewvc/maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/jdo/AbstractJdoStoreTestCase.java?view=diff&rev=491397&r1=491396&r2=491397
==============================================================================
--- maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/jdo/AbstractJdoStoreTestCase.java (original)
+++ maven/continuum/branches/key-based-refactor/continuum-store/src/test/java/org/apache/maven/continuum/store/jdo/AbstractJdoStoreTestCase.java Sat Dec 30 22:32:52 2006
@@ -50,7 +50,7 @@
     /**
      * Default location for SQL test data.
      */
-    private static final String SQL_TEST_DATA = "src/test/resources/testData.sql";
+    private static final String SQL_TEST_DATA = "src/test/resources/db/testData.sql";
 
     /**
      * Password to connect to the target test database instance.
@@ -75,7 +75,7 @@
     /**
      * DDL for Database creation.
      */
-    private static final File SQL_DATABSE_SCHEMA = getTestFile( getBasedir(), "src/test/resources/schema.sql" );
+    private static final File SQL_DATABSE_SCHEMA = getTestFile( getBasedir(), "src/test/resources/db/schema.sql" );
 
     /**
      * Provides an interface to clients to execute queries on the underlying

Added: maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/teardown.sql
URL: http://svn.apache.org/viewvc/maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/teardown.sql?view=auto&rev=491397
==============================================================================
--- maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/teardown.sql (added)
+++ maven/continuum/branches/key-based-refactor/continuum-store/src/test/resources/db/teardown.sql Sat Dec 30 22:32:52 2006
@@ -0,0 +1,28 @@
+# Drops all tables
+
+drop table BUILDDEFINITION;
+drop table BUILDRESULT;
+drop table BUILDRESULT_MODIFIEDDEPENDENCIES;
+drop table CHANGEFILE;
+drop table CHANGESET;
+drop table CONTINUUMMODELLOMETADATA;
+drop table INSTALLATION;
+drop table NOTIFICATIONADDRESS;
+drop table NOTIFICATIONADDRESS_CONFIGURATION;
+drop table PROFILE;
+drop table PROJECT;
+drop table PROJECTDEPENDENCY;
+drop table PROJECTDEVELOPER;
+drop table PROJECTGROUP;
+drop table PROJECTGROUP_BUILDDEFINITIONS;
+drop table PROJECTGROUP_NOTIFIERS;
+drop table PROJECTNOTIFIER;
+drop table PROJECTNOTIFIER_CONFIGURATION;
+drop table PROJECT_BUILDDEFINITIONS;
+drop table PROJECT_NOTIFIERS;
+drop table SCHEDULE;
+drop table SCMRESULT;
+drop table SUITERESULT;
+drop table SYSTEMCONFIGURATION;
+drop table TESTCASEFAILURE;
+drop table TESTRESULT;
\ No newline at end of file