/**
 * @copyright
 * ====================================================================
 * Copyright (c) 2003-2004 CollabNet.  All rights reserved.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution.  The terms
 * are also available at http://subversion.tigris.org/license-1.html.
 * If newer versions of this license are posted there, you may use a
 * newer version instead, at your option.
 *
 * This software consists of voluntary contributions made by many
 * individuals.  For exact contribution history, see the revision
 * history and logs, available at http://subversion.tigris.org/.
 * ====================================================================
 * @endcopyright
 */
package org.tigris.subversion.javahl.tests;

import java.io.File;
import junit.framework.TestCase;

import org.tigris.subversion.javahl.SubversionException;
import org.tigris.subversion.javahl.SVNAdmin;

/**
 * This class is used for testing the SVNAdmin class
 *
 * More methodes for testing are still needed
 */
public class SVNAdminTests extends TestCase
{
    private static final String REPOS_PATH = "testrep";

    /**
     * the objects, which is going to be tested
     */
    private SVNAdmin testee;

    /**
     * setup the test
     * @throws Exception
     */
    protected void setUp() throws Exception
    {
        super.setUp();
        testee = new SVNAdmin();
    }

    /**
     * cleanp after the test
     * @throws Exception
     */
    protected void tearDown() throws Exception
    {
        testee.dispose();
        super.tearDown();
    }

    /**
     * Test the basic SVNAdmin.create functionality
     * @throws Throwable
     */
    public void testCreate()
        throws SubversionException
    {
        createRepository(REPOS_PATH);
        File reposDir = new File(REPOS_PATH);
        assertTrue("repository exists", reposDir.exists());
        removeRepository(REPOS_PATH);
        assertFalse("repository deleted", reposDir.exists());
    }

    /**
     * Create a repository at <code>reposPath</code>.
     *
     * @param reposPath The path to the repository.
     */
    protected void createRepository(String reposPath)
        throws SubversionException
    {
        testee.create(reposPath, false, false, null, SVNAdmin.BDB);
    }

    /**
     * Delete the repository at <code>reposPath</code>.
     *
     * @param reposPath The path to the repository.
     */
    protected void removeRepository(String reposPath)
    {
        SVNTests.removeDirOrFile(new File(reposPath));
    }
}

@@ -818,20 +818,27 @@
 java.io.
-File
+IOException
 ;%0Aimport
@@ -865,16 +865,62 @@
 tCase;%0A%0A
+import org.tigris.subversion.javahl.Revision;%0A
 import o
@@ -1164,612 +1164,116 @@
 nds 
+SVN
 Test
-Case
+s
 %0A%7B%0A    
-private static final String REPOS_PATH = %22testrep%22;%0A%0A    /**%0A     * the objects, which is going to be tested%0A     */%0A    private SVNAdmin testee;%0A%0A    /**%0A     * setup the test%0A     * @throws Exception%0A     */%0A    protected void setUp() throws Exception%0A    %7B%0A        super.setUp();%0A        testee = new SVNAdmin();%0A    %7D%0A%0A    /**%0A     * cleanp after the test%0A     * @throws Exception%0A     */%0A    protected void tearDown() throws Exception%0A    %7B%0A        testee.dispose();%0A        super.tearDown();%0A    %7D%0A%0A    /**%0A     * Test the basic SVNAdmin.create functionality%0A     * @throws Throwable
+/**%0A     * Test the basic SVNAdmin.create functionality%0A     * @exception SubversionException
 %0A   
@@ -1332,32 +1332,45 @@
 versionException
+, IOException
 %0A    %7B%0A        c
@@ -1372,432 +1372,161 @@
     
-createRepository(REPOS_PATH);%0A        File reposDir = new File(REPOS_PATH);%0A        assertTrue(%22repository exists%22, reposDir.exists());%0A        removeRepository(REPOS_PATH);%0A        assertFalse(%22repository deleted%22, reposDir.exists());%0A    %7D%0A%0A    /**%0A     * Create a repository at %3Ccode%3EreposPath%3C/code%3E.%0A     *%0A     * @param reposPath The path to the repository.%0A     */%0A    protected void createRepository(String reposPath
+OneTest thisTest = new OneTest(false);%0A        assertTrue(%22repository exists%22, thisTest.getRepository().exists());%0A    %7D%0A%0A    public void testSetRevProp(
 )%0A  
@@ -1549,32 +1549,45 @@
 versionException
+, IOException
 %0A    %7B%0A        t
@@ -1589,102 +1589,85 @@
     
-testee.create(reposPath, false, false, null, SVNAdmin.BDB
+OneTest thisTest = new OneTest(false
 );%0A    
-%7D%0A%0A
     
-/**%0A     * Delete the r
+admin.setRevProp(thisTest.getR
 epos
@@ -1675,171 +1675,127 @@
 tory
- at %3Ccode%3EreposPath%3C/code%3E.
+Path(), Revision.getInstance(0),
 %0A     
-*%0A
      
-* @param reposPath The path to the repository.%0A     */%0A    protected void removeRepository(String reposPath)
+               %22svn:log%22, %22Initial repository creation%22, false,
 %0A    
-%7B%0A
         
 SVNT
@@ -1794,52 +1794,26 @@
     
-SVNTests.removeDirOrFile(new File(reposPath)
+             false
 );%0A 

Refactor the test suite for the SVNAdmin API. Add a test for the new SVNAdmin.setRevProp() API.