You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by dp...@apache.org on 2008/10/09 10:21:04 UTC

svn commit: r703099 - /jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/journal/FileJournalTest.java

Author: dpfister
Date: Thu Oct  9 01:21:03 2008
New Revision: 703099

URL: http://svn.apache.org/viewvc?rev=703099&view=rev
Log:
Add more ClusterNode stability tests

Modified:
    jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/journal/FileJournalTest.java

Modified: jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/journal/FileJournalTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/journal/FileJournalTest.java?rev=703099&r1=703098&r2=703099&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/journal/FileJournalTest.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/test/java/org/apache/jackrabbit/core/journal/FileJournalTest.java Thu Oct  9 01:21:03 2008
@@ -38,6 +38,16 @@
     private static final String REPOSITORY_HOME = "target/repository_for_test";
 
     /**
+     * Default cluster node id.
+     */
+    private static final String CLUSTER_NODE_ID = "node";
+
+    /**
+     * Default sync delay: 5 seconds.
+     */
+    private static final long SYNC_DELAY = 5000;
+
+    /**
      * Repository home.
      */
     private File repositoryHome;
@@ -83,7 +93,7 @@
         BeanConfig bc = new BeanConfig(FileJournal.class.getName(), params);
         JournalConfig jc = new JournalConfig(bc);
 
-        ClusterConfig cc = new ClusterConfig(null, 0, jc);
+        ClusterConfig cc = new ClusterConfig(CLUSTER_NODE_ID, SYNC_DELAY, jc);
         SimpleClusterContext context = new SimpleClusterContext(cc, repositoryHome);
 
         ClusterNode clusterNode = new ClusterNode();
@@ -96,4 +106,58 @@
             clusterNode.stop();
         }
     }
+
+    /**
+     * Verify that <code>ClusterNode.stop</code> can be invoked even when
+     * <code>ClusterNode.init</code> throws because of a bad journal class.
+     *
+     * @throws Exception
+     */
+    public void testClusterInitIncompleteBadJournalClass() throws Exception {
+        Properties params = new Properties();
+
+        BeanConfig bc = new BeanConfig(Object.class.getName(), params);
+        JournalConfig jc = new JournalConfig(bc);
+
+        ClusterConfig cc = new ClusterConfig(CLUSTER_NODE_ID, SYNC_DELAY, jc);
+        SimpleClusterContext context = new SimpleClusterContext(cc);
+
+        ClusterNode clusterNode = new ClusterNode();
+
+        try {
+            clusterNode.init(context);
+            fail("Bad cluster configuration.");
+        } catch (Exception e) {
+        }
+
+        clusterNode.stop();
+    }
+
+    /**
+     * Verify that <code>ClusterNode.stop</code> can be invoked even when
+     * <code>ClusterNode.init</code> throws because the journal can not
+     * be initialized. Note: this is done by omitting the required argument
+     * <code>directory</code>.
+     *
+     * @throws Exception
+     */
+    public void testClusterInitIncompleteMissingParam() throws Exception {
+        Properties params = new Properties();
+
+        BeanConfig bc = new BeanConfig(FileJournal.class.getName(), params);
+        JournalConfig jc = new JournalConfig(bc);
+
+        ClusterConfig cc = new ClusterConfig(CLUSTER_NODE_ID, SYNC_DELAY, jc);
+        SimpleClusterContext context = new SimpleClusterContext(cc);
+
+        ClusterNode clusterNode = new ClusterNode();
+
+        try {
+            clusterNode.init(context);
+            fail("Bad cluster configuration.");
+        } catch (Exception e) {
+        }
+
+        clusterNode.stop();
+    }
 }