Class ScmTckTestCase

java.lang.Object
junit.framework.Assert
junit.framework.TestCase
org.codehaus.plexus.PlexusTestCase
org.apache.maven.scm.ScmTestCase
org.apache.maven.scm.ScmTckTestCase
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
AbstractRemoteInfoCommandTckTest, BlameCommandTckTest, BranchCommandTckTest, ChangeLogCommandTckTest, CheckInCommandTckTest, CheckOutCommandTckTest, DiffCommandTckTest, ListCommandTckTest, MkdirCommandTckTest, StatusCommandTckTest, TagCommandTckTest, UntagCommandTckTest, UpdateCommandTckTest

public abstract class ScmTckTestCase extends ScmTestCase
Base class for all TcK tests.

Basically all it does is to setup a default test enviroment common for all tck tests. The default setup includes:

  1. Delete all default locations (working copy, updating copy etc)
  2. Initialize the repository
  3. Check out the repository to the working copy
  • Field Details

  • Constructor Details

    • ScmTckTestCase

      public ScmTckTestCase()
  • Method Details

    • getScmUrl

      public abstract String getScmUrl() throws Exception
      Returns:
      A provider specific and valid url for the repository
      Throws:
      Exception - if any
    • getScmFileNames

      protected List<String> getScmFileNames()

      Get the list of file names that is supposed to be in the test repo.

      • /pom.xml
      • /readme.txt
      • /src/main/java/Application.java
      • /src/test/java/Test.java
      Returns:
      List of String objects
    • initRepo

      public abstract void initRepo() throws Exception

      Initialize repository at the getScmUrl() location with the files in getScmFileNames()

      The setup is also asserting on the existence of these files.
      This should only be used by this class (thus do not call this method from derived classes)

      Note: 'svnadmin' should be a system command.
      Throws:
      Exception - if any
    • setUp

      protected void setUp() throws Exception
      Overrides:
      setUp in class ScmTestCase
      Throws:
      Exception
    • removeRepo

      public void removeRepo() throws Exception
      This method is available to those SCM clients that need to perform a cleanup at the end of the tests. It is needed when server side operations are performed, or the check out dirs are outside of the normal target directory.
      Throws:
      Exception
    • tearDown

      protected void tearDown() throws Exception
      Provided to allow removeRepo() to be called.
      Overrides:
      tearDown in class org.codehaus.plexus.PlexusTestCase
      Throws:
      Exception
      See Also:
      • TestCase.tearDown()
    • getScmRepository

      protected ScmRepository getScmRepository() throws Exception
      Convenience method to get the ScmRepository for this provider
      Throws:
      Exception
    • checkOut

      protected CheckOutScmResult checkOut(File workingDirectory, ScmRepository repository) throws Exception
      Convenience method to check out files from the repository
      Throws:
      Exception
    • checkIn

      protected CheckInScmResult checkIn(File workingDirectory, ScmRepository repository) throws Exception
      Convenience method to check in files to the repository
      Throws:
      Exception
    • addToWorkingTree

      protected void addToWorkingTree(File workingDirectory, File file, ScmRepository repository) throws Exception
      Convenience method to add a file to the working tree at the working directory
      Throws:
      Exception
    • mapFilesByPath

      protected Map<String,ScmFile> mapFilesByPath(List<ScmFile> files)
      take the files of the given list, add them to a TreeMap and use the pathName String as key for the Map. This function is useful for every TCK which has to check for the existence of more than 1 file of the returned ScmResult, regardless of their order in the list. All backslashes in the path will be replaced by forward slashes for Windows compatibility.
      Parameters:
      files - List with ScmFiles
      Returns:
      Map key=pathName, value=ScmFile
    • edit

      protected EditScmResult edit(File basedir, String includes, String excludes, ScmRepository repository) throws Exception
      Throws:
      Exception