org.tigris.subversion.javahl.tests
Class SVNTests

java.lang.Object
  extended by TestCase
      extended by org.tigris.subversion.javahl.tests.SVNTests
Direct Known Subclasses:
BasicTests

public class SVNTests
extends TestCase

common base class for the javahl binding tests


Nested Class Summary
 class SVNTests.FileInputer
          internal class which implements the InputInterface to read the data from a file.
 class SVNTests.FileOutputer
          internal class which implements the OutputInterface to write the data to a file.
 class SVNTests.IgnoreOutputer
          internal class implements the OutputInterface, but ignores the data
protected  class SVNTests.OneTest
          this internal class represent the repository and the working copy for one test.
 
Field Summary
protected  SVNAdmin admin
          our admin object, mostly used for creating,dumping and loading repositories
protected  SVNClientInterface client
          the subversion client, what we want to test.
protected  java.io.File conf
          the directory "config" in the localTmp.
protected  java.util.Map expectedCommitItems
          the map of all items expected to be received by the callback for the log message.
protected  java.io.File greekDump
          the file in which the sample repository has been dumped.
protected  java.io.File greekRepos
          the directory of the sample repository.
protected  WC greekWC
          the initial working copy of the sample repository.
protected  java.io.File localTmp
          the directory "svn-test-work/local_tmp" in the rootDir.
protected  java.lang.String logMessage
          standard log message.
protected  java.io.File repositories
          the directory "repositories" in the rootDir.
protected  java.io.File rootDir
          the root directory.
protected static java.lang.String rootDirectoryName
          common root directory for all tests.
protected static java.lang.String rootUrl
          common root URL for all tests.
protected  java.lang.String testBaseName
          the base name of the test.
protected static int testCounter
          this counter will be incremented for every test in one suite (test class)
protected  java.io.File workingCopies
          the directory "working_copies" in the rootDir.
 
Constructor Summary
protected SVNTests()
          Initialize one test object
 
Method Summary
protected  void addExpectedCommitItem(java.lang.String workingCopyPath, java.lang.String baseUrl, java.lang.String itemPath, int nodeKind, int stateFlags)
          add another commit item expected during the callback for the log message.
protected  java.lang.String getAdminDirectoryName()
          Intended to be called as part of test method execution (post-setUp()).
static void main(java.lang.String[] args)
          Main method, will call all tests of all test classes
protected  java.lang.String makeReposUrl(java.io.File file)
          Create the url for the repository to be used for the tests.
protected static void processArgs(java.lang.String[] args)
          retrieve the root directory and the root url from the command line arguments
protected  void removeDirectoryWithContent(java.io.File localTmp)
          Remove a directory with all files and directories it may contain.
protected  void setUp()
          Standard initialization of one test
static TestSuite suite()
          build a test suite with all test of all test classes known
protected  void tearDown()
          cleanup after one test
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

admin

protected SVNAdmin admin
our admin object, mostly used for creating,dumping and loading repositories


client

protected SVNClientInterface client
the subversion client, what we want to test.


rootDir

protected java.io.File rootDir
the root directory. All other files and directories will created in here


testBaseName

protected java.lang.String testBaseName
the base name of the test. Together with the testCounter this will make up the directory name of the test.


testCounter

protected static int testCounter
this counter will be incremented for every test in one suite (test class)


greekDump

protected java.io.File greekDump
the file in which the sample repository has been dumped.


greekRepos

protected java.io.File greekRepos
the directory of the sample repository.


greekWC

protected WC greekWC
the initial working copy of the sample repository.


localTmp

protected java.io.File localTmp
the directory "svn-test-work/local_tmp" in the rootDir. This will be used for the sample repository and its dumpfile and for the config directory


repositories

protected java.io.File repositories
the directory "repositories" in the rootDir. All test repositories will be created here.


workingCopies

protected java.io.File workingCopies
the directory "working_copies" in the rootDir. All test working copies will be created here.


conf

protected java.io.File conf
the directory "config" in the localTmp. It will be used as the configuration directory for all the tests.


logMessage

protected java.lang.String logMessage
standard log message. Used for all commits.


expectedCommitItems

protected java.util.Map expectedCommitItems
the map of all items expected to be received by the callback for the log message. After each commit, this will be cleared


rootDirectoryName

protected static java.lang.String rootDirectoryName
common root directory for all tests. Can be set by the command line or by the system property "test.rootdir". If not set, the current directory of this process is used


rootUrl

protected static java.lang.String rootUrl
common root URL for all tests. Can be set by the command line or by the system property "test.rooturl". If not set, the file url of the rootDirectoryName is used.

Constructor Detail

SVNTests

protected SVNTests()
Initialize one test object

Method Detail

processArgs

protected static void processArgs(java.lang.String[] args)
retrieve the root directory and the root url from the command line arguments

Parameters:
args - command line arguments

main

public static void main(java.lang.String[] args)
Main method, will call all tests of all test classes

Parameters:
args - command line arguments

suite

public static TestSuite suite()
build a test suite with all test of all test classes known

Returns:
complete test suite

setUp

protected void setUp()
              throws java.lang.Exception
Standard initialization of one test

Throws:
java.lang.Exception

removeDirectoryWithContent

protected void removeDirectoryWithContent(java.io.File localTmp)
Remove a directory with all files and directories it may contain.

Parameters:
localTmp -

tearDown

protected void tearDown()
                 throws java.lang.Exception
cleanup after one test

Throws:
java.lang.Exception

makeReposUrl

protected java.lang.String makeReposUrl(java.io.File file)
Create the url for the repository to be used for the tests.

Parameters:
file - the directory of the repository
Returns:
the URL for the repository

addExpectedCommitItem

protected void addExpectedCommitItem(java.lang.String workingCopyPath,
                                     java.lang.String baseUrl,
                                     java.lang.String itemPath,
                                     int nodeKind,
                                     int stateFlags)
add another commit item expected during the callback for the log message.

Parameters:
workingCopyPath - the path of the of the working
baseUrl - the url for the repository
itemPath - the path of the item relative the working copy
nodeKind - expected node kind (dir or file or none)
stateFlags - expected commit state flags (see CommitItemStateFlags)

getAdminDirectoryName

protected java.lang.String getAdminDirectoryName()
Intended to be called as part of test method execution (post-setUp()). Calls fail() if the directory name cannot be determined.

Returns:
The name of the working copy administrative directory.
Since:
1.3