Author: [email protected]
Date: Thu Feb 24 15:58:50 2011
New Revision: 843

Log:
[AMDATU-318] Cassandra PM Unit tests refactored to run as a single test. With 
multiple tests, the previous daemon might still be running when the second test 
starts and there is no way you can shutdown a Cassandra daemon.

Modified:
   branches/0.2/amdatu-cassandra/cassandra-persistencemanager/pom.xml
   
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/PersistenceManagerTest.java
   
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/mock/CassandraDaemonMock.java

Modified: branches/0.2/amdatu-cassandra/cassandra-persistencemanager/pom.xml
==============================================================================
--- branches/0.2/amdatu-cassandra/cassandra-persistencemanager/pom.xml  
(original)
+++ branches/0.2/amdatu-cassandra/cassandra-persistencemanager/pom.xml  Thu Feb 
24 15:58:50 2011
@@ -48,15 +48,6 @@
   <build>
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.6</version>
-        <configuration>
-          <forkMode>pertest</forkMode>
-          <argLine>-enableassertions</argLine>
-        </configuration>
-      </plugin>
-      <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <configuration>

Modified: 
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/PersistenceManagerTest.java
==============================================================================
--- 
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/PersistenceManagerTest.java
        (original)
+++ 
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/PersistenceManagerTest.java
        Thu Feb 24 15:58:50 2011
@@ -92,52 +92,40 @@
                m_daemon.addColumnFamily(TEST_KEYSPACE_THRIFT, 
TEST_STANDARD_CF, "Standard", "BytesType", null);
        }
 
-       private void stopDaemon() throws Exception { 
-               m_daemon.dropKeyspace(TEST_KEYSPACE_HECTOR);
-               m_daemon.dropKeyspace(TEST_KEYSPACE_THRIFT);
-
-               Thread stopThread = m_daemon.new 
CassandraDaemonStopThread(m_daemon.getDaemon());
-               stopThread.setDaemon(true);
-               stopThread.start();
-               stopThread.join();
-       }
-
-       @Test
-       public void testGetRowKeys() throws Exception {         
-               LOG.info("testGetRowKeys started");
-               startDaemon();
-
-               try {
-                       // Remove all rows first
-                       deleteAllRows(TEST_SUPER_CF);
-                       deleteAllRows(TEST_STANDARD_CF);
-
-                       testGetRowKeys(TEST_SUPER_CF, true, true);
-                       testGetRowKeys(TEST_SUPER_CF, true, false);
-                       testGetRowKeys(TEST_STANDARD_CF, false, true);
-                       testGetRowKeys(TEST_STANDARD_CF, false, false);
-               } finally {
-                       stopDaemon();
-               }
-               LOG.info("testGetRowKeys finished");
-       }
-
+       /**
+        * We run all tests in a single execution since Cassandra does not 
support shutdown. So when a second
+        * test will be executed and a new daemon is spawned, it may fail to 
startup as the previous daemon
+        * is still running (on the same hostname/port).
+        * @throws Exception
+        */
        @Test
-       public void testHectorObjectTypes() throws Exception {
-               LOG.info("testHectorObjectTypes started");
+       public void testAll() throws Exception {                
+               LOG.info("Starting unit tests");
                startDaemon();
 
-               try {
-                       // Remove all rows first
-                       deleteAllRows(TEST_SUPER_CF);
-                       deleteAllRows(TEST_STANDARD_CF);
-
-                       testValueTypes(TEST_SUPER_CF, true);
-                       testValueTypes(TEST_STANDARD_CF, false);
-               } finally {
-                       stopDaemon();
-               }
-               LOG.info("testHectorObjectTypes finished");
+               // Remove all rows first
+               deleteAllRows(TEST_SUPER_CF);
+               deleteAllRows(TEST_STANDARD_CF);
+
+               // Test retrieving row keys
+               testGetRowKeys(TEST_SUPER_CF, true, true);
+               testGetRowKeys(TEST_SUPER_CF, true, false);
+               testGetRowKeys(TEST_STANDARD_CF, false, true);
+               testGetRowKeys(TEST_STANDARD_CF, false, false);
+               
+               // Remove all rows first
+               deleteAllRows(TEST_SUPER_CF);
+               deleteAllRows(TEST_STANDARD_CF);
+
+               // Test object types in Hector
+               testValueTypes(TEST_SUPER_CF, true);
+               testValueTypes(TEST_STANDARD_CF, false);
+               
+               // Drop the keyspaces we created
+               m_daemon.dropKeyspace(TEST_KEYSPACE_HECTOR);
+               m_daemon.dropKeyspace(TEST_KEYSPACE_THRIFT);
+               
+               LOG.info("Unit tests finished");
        }
 
        private void testValueTypes(String cf, boolean isSuper) throws 
CassandraException, UnsupportedEncodingException {

Modified: 
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/mock/CassandraDaemonMock.java
==============================================================================
--- 
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/mock/CassandraDaemonMock.java
      (original)
+++ 
branches/0.2/amdatu-cassandra/cassandra-persistencemanager/src/test/java/org/amdatu/cassandra/persistencemanager/mock/CassandraDaemonMock.java
      Thu Feb 24 15:58:50 2011
@@ -26,7 +26,6 @@
 
 import org.amdatu.cassandra.application.CassandraDaemonService;
 import org.apache.cassandra.db.Table;
-import org.apache.cassandra.service.ClientState;
 import org.apache.cassandra.service.StorageService;
 import org.apache.cassandra.thrift.CassandraDaemon;
 import org.apache.cassandra.thrift.CassandraServer;
@@ -272,17 +271,4 @@
                        m_cassandraServer = new CassandraServer();
                }
     }
-    
-    public class CassandraDaemonStopThread extends Thread {
-       private CassandraDaemon m_daemon;
-       
-       public CassandraDaemonStopThread(CassandraDaemon daemon) {
-               m_daemon = daemon;
-       }
-       
-               public void run() {
-                       m_cassandraServer = null;
-                       //m_daemon.stop();
-               }
-    }
 }
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to