You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2005/09/28 22:46:15 UTC

svn commit: r292294 - in /incubator/jackrabbit/trunk/src: java/org/apache/jackrabbit/core/config/RepositoryConfig.java test/org/apache/jackrabbit/core/config/RepositoryConfigTest.java

Author: jukka
Date: Wed Sep 28 13:46:08 2005
New Revision: 292294

URL: http://svn.apache.org/viewcvs?rev=292294&view=rev
Log:
Added RepositoryConfig test cases and better error reporting when attempting to create a duplicate workspace.

Modified:
    incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/config/RepositoryConfig.java
    incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/config/RepositoryConfigTest.java

Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/config/RepositoryConfig.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/config/RepositoryConfig.java?rev=292294&r1=292293&r2=292294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/config/RepositoryConfig.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/config/RepositoryConfig.java Wed Sep 28 13:46:08 2005
@@ -296,9 +296,13 @@
 
         // Create the directory, fail if it exists or cannot be created
         if (!directory.mkdir()) {
-            throw new ConfigurationException(
-                    "Failed to create configuration directory for workspace "
-                    + name + ".");
+            if (directory.exists()) {
+                throw new ConfigurationException(
+                        "Workspace directory already exists: " + name);
+            } else {
+                throw new ConfigurationException(
+                        "Failed to create workspace directory: " + name);
+            }
         }
 
         // Create the workspace.xml file using the configuration template.

Modified: incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/config/RepositoryConfigTest.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/config/RepositoryConfigTest.java?rev=292294&r1=292293&r2=292294&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/config/RepositoryConfigTest.java (original)
+++ incubator/jackrabbit/trunk/src/test/org/apache/jackrabbit/core/config/RepositoryConfigTest.java Wed Sep 28 13:46:08 2005
@@ -28,21 +28,46 @@
  */
 public class RepositoryConfigTest extends TestCase {
 
+    private static final String REPOSITORY_XML = "org/apache/jackrabbit/core/config/repository.xml";
+
+    private static final String REPOSITORY_HOME = "target/test-repository";
+
+    private RepositoryConfig config;
+
+    private static void deleteAll(File file) {
+        if (file.exists()) {
+            if (file.isDirectory()) {
+                File[] children = file.listFiles();
+                for (int i = 0; i < children.length; i++) {
+                    deleteAll(children[i]);
+                }
+            }
+            file.delete();
+        }
+    }
+
     /**
-     * Test that a standard repository configuration file is
-     * correctly parsed.
-     *
-     * @throws Exception on errors
+     * Sets up the test case by reading the test repository configuration file.
      */
-    public void testRepositoryXml() throws Exception {
-        InputStream xml = getClass().getClassLoader().getResourceAsStream(
-                "org/apache/jackrabbit/core/config/repository.xml");
-        RepositoryConfig config =
-            RepositoryConfig.create(new InputSource(xml), "target");
+    protected void setUp() throws Exception {
+        ClassLoader loader = getClass().getClassLoader();
+        InputStream xml = loader.getResourceAsStream(REPOSITORY_XML);
+        config = RepositoryConfig.create(new InputSource(xml), REPOSITORY_HOME);
+    }
+
+    protected void tearDown() {
+        deleteAll(new File(REPOSITORY_HOME));
+    }
 
-        assertEquals("target", config.getHomeDir());
+    /**
+     * Test that the repository configuration file is correctly parsed.
+     */
+    public void testRepositoryConfig() throws Exception {
+        assertEquals(REPOSITORY_HOME, config.getHomeDir());
         assertEquals("default", config.getDefaultWorkspaceName());
-        assertEquals("target/workspaces", config.getWorkspacesConfigRootDir());
+        assertEquals(
+                new File(REPOSITORY_HOME, "workspaces").getPath(),
+                config.getWorkspacesConfigRootDir());
         assertEquals("Jackrabbit", config.getAppName());
 
         AccessManagerConfig amc = config.getAccessManagerConfig();
@@ -52,11 +77,35 @@
         assertTrue(amc.getParameters().isEmpty());
 
         VersioningConfig vc = config.getVersioningConfig();
-        assertEquals(new File("target/version"), vc.getHomeDir());
+        assertEquals(new File(REPOSITORY_HOME, "version"), vc.getHomeDir());
         assertEquals(
                 "org.apache.jackrabbit.core.state.obj.ObjectPersistenceManager",
                 vc.getPersistenceManagerConfig().getClassName());
         assertTrue(vc.getPersistenceManagerConfig().getParameters().isEmpty());
+    }
+
+    public void testInit() throws Exception {
+        File workspaces_dir = new File(REPOSITORY_HOME, "workspaces");
+        File workspace_dir = new File(workspaces_dir, "default");
+        File workspace_xml = new File(workspace_dir, "workspace.xml");
+        assertTrue(workspace_xml.exists());
+    }
+
+    public void testCreateWorkspaceConfig() throws Exception {
+        config.createWorkspaceConfig("test-workspace");
+        File workspaces_dir = new File(REPOSITORY_HOME, "workspaces");
+        File workspace_dir = new File(workspaces_dir, "test-workspace");
+        File workspace_xml = new File(workspace_dir, "workspace.xml");
+        assertTrue(workspace_xml.exists());
+    }
+
+    public void testCreateDuplicateWorkspaceConfig() throws Exception {
+        try {
+            config.createWorkspaceConfig("default");
+            fail("No exception thrown when creating a duplicate workspace");
+        } catch (ConfigurationException e) {
+            // test passed
+        }
     }
 
 }