Package org.apache.maven.scm

## Class ScmTestCase

- java.lang.Object
- - junit.framework.Assert
  - - junit.framework.TestCase
    - - org.codehaus.plexus.PlexusTestCase
      - - org.apache.maven.scm.ScmTestCase

All Implemented Interfaces:
  `junit.framework.Test`

Direct Known Subclasses:
  `AbstractCvsScmTest`, `ScmTckTestCase`

    public abstract class ScmTestCase
    extends org.codehaus.plexus.PlexusTestCase

Base class for all scm tests. Consumers will typically extend this class while tck test would extend ScmTckTestCase.
This class basically defines default locations for the test environment and implements convenience methods.

Author:
  Jason van Zyl

### Field Summary

Fields
`protected static java.util.TimeZone` `GMT_TIME_ZONE`

### Constructor Summary

Constructors
`ScmTestCase()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `assertCommandLine​(java.lang.String expectedCommand, java.io.File expectedWorkingDirectory, org.codehaus.plexus.util.cli.Commandline actualCommand)`
`protected void` `assertFile​(java.io.File root, java.lang.String fileName)`
`void` `assertPath​(java.lang.String expectedPath, java.lang.String actualPath)` TODO This method is bogus.
`protected void` `assertResultIsSuccess​(ScmResult result)`
`protected void` `deleteDirectory​(java.io.File directory)`
`static void` `execute​(java.io.File workingDirectory, java.lang.String executable, java.lang.String arguments)` Execute the command line
`protected java.io.File` `getAssertionCopy()`
`protected java.io.InputStream` `getCustomConfiguration()`
`static java.util.Date` `getDate​(int year, int month, int day)`
`protected static java.util.Date` `getDate​(int year, int month, int day, int hourOfDay, int minute, int second, java.util.TimeZone tz)`
`protected static java.util.Date` `getDate​(int year, int month, int day, java.util.TimeZone tz)`
`protected java.lang.String` `getModule()`
`protected java.io.File` `getRepository()`
`protected java.io.File` `getRepositoryRoot()`
`protected ScmFileSet` `getScmFileSet()`
`protected ScmManager` `getScmManager()`
`org.sonatype.plexus.components.sec.dispatcher.SecDispatcher` `getSecDispatcher()` If you wish to use this component, make sure to configure your TCK implementation to include plexus component configuration as doc at https://issues.apache.org/jira/browse/MNG-4384
`protected java.io.File` `getUpdatingCopy()`
`protected java.io.File` `getWorkingCopy()`
`protected java.io.File` `getWorkingDirectory()` Legacy method - same as getWorkingCopy()
`static boolean` `isSystemCmd​(java.lang.String cmd)`
`protected static void` `makeDirectory​(java.io.File basedir, java.lang.String fileName)`
`protected static void` `makeFile​(java.io.File basedir, java.lang.String fileName)`
`static void` `makeFile​(java.io.File basedir, java.lang.String fileName, java.lang.String contents)`
`protected ScmRepository` `makeScmRepository​(java.lang.String scmUrl)`
`protected void` `printOutputError​(ScmResult result)`
`static void` `printSystemCmdUnavail​(java.lang.String cmd, java.lang.String testName)`
`protected static void` `setDebugExecute​(boolean debugExecute)`
`protected void` `setUp()`

### Methods inherited from class org.codehaus.plexus.PlexusTestCase

`customizeComponentConfiguration, customizeContainerConfiguration, customizeContext, getBasedir, getClassLoader, getConfiguration, getConfiguration, getConfigurationName, getContainer, getCustomConfigurationName, getResourceAsStream, getTestConfiguration, getTestConfiguration, getTestFile, getTestFile, getTestPath, getTestPath, lookup, lookup, lookup, lookup, release, setupContainer, tearDown`

### Methods inherited from class junit.framework.TestCase

`assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, getName, run, run, runBare, runTest, setName, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### GMT_TIME_ZONE

    protected static final java.util.TimeZone GMT_TIME_ZONE

### Constructor Detail

#### ScmTestCase

    public ScmTestCase()

### Method Detail

#### setUp

    protected void setUp()
                  throws java.lang.Exception

Overrides:
  `setUp` in class `org.codehaus.plexus.PlexusTestCase`
Throws:
  `java.lang.Exception`

#### getCustomConfiguration

    protected java.io.InputStream getCustomConfiguration()
                                                  throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### getModule

    protected java.lang.String getModule()

#### getRepositoryRoot

    protected java.io.File getRepositoryRoot()

Returns:
  default location of the test read/write repository

#### getRepository

    protected java.io.File getRepository()

Returns:
  Location of the revisioned (read only) repository

#### getWorkingCopy

    protected java.io.File getWorkingCopy()

Returns:
  location of the working copy (always checkout)

#### getWorkingDirectory

    protected java.io.File getWorkingDirectory()

Legacy method - same as getWorkingCopy()

Returns:
  location of the working copy (always checkout)

#### getAssertionCopy

    protected java.io.File getAssertionCopy()

Returns:
  default location for doing assertions on a working tree

#### getUpdatingCopy

    protected java.io.File getUpdatingCopy()

Returns:
  default location for doing update operations on a working tree

#### getScmManager

    protected ScmManager getScmManager()
                                throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### getSecDispatcher

    public org.sonatype.plexus.components.sec.dispatcher.SecDispatcher getSecDispatcher()
                                                                                 throws java.lang.Exception

If you wish to use this component, make sure to configure your TCK implementation to include plexus component configuration as doc at https://issues.apache.org/jira/browse/MNG-4384

Returns:
  SecDispatcher
Throws:
  `java.lang.Exception`

#### makeScmRepository

    protected ScmRepository makeScmRepository​(java.lang.String scmUrl)
                                       throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### assertPath

    public void assertPath​(java.lang.String expectedPath,
                           java.lang.String actualPath)
                    throws java.lang.Exception

TODO This method is bogus. ActualPatch is not used and if used, it breaks some unit tests.

Throws:
  `java.lang.Exception`

#### assertFile

    protected void assertFile​(java.io.File root,
                              java.lang.String fileName)
                       throws java.lang.Exception

Throws:
  `java.lang.Exception`

#### assertResultIsSuccess

    protected void assertResultIsSuccess​(ScmResult result)

#### printOutputError

    protected void printOutputError​(ScmResult result)

#### getScmFileSet

    protected ScmFileSet getScmFileSet()

#### setDebugExecute

    protected static void setDebugExecute​(boolean debugExecute)

#### execute

    public static void execute​(java.io.File workingDirectory,
                               java.lang.String executable,
                               java.lang.String arguments)
                        throws java.lang.Exception

Execute the command line

Parameters:
  `workingDirectory` - not null
  `executable` - not null, should be a system command
  `arguments` - not null
Throws:
  `java.lang.Exception` - if any
See Also:
  `CommandLineUtils.executeCommandLine(Commandline, org.codehaus.plexus.util.cli.StreamConsumer, org.codehaus.plexus.util.cli.StreamConsumer)`

#### makeDirectory

    protected static void makeDirectory​(java.io.File basedir,
                                        java.lang.String fileName)

#### makeFile

    protected static void makeFile​(java.io.File basedir,
                                   java.lang.String fileName)
                            throws java.io.IOException

Throws:
  `java.io.IOException`

#### makeFile

    public static void makeFile​(java.io.File basedir,
                                java.lang.String fileName,
                                java.lang.String contents)
                         throws java.io.IOException

Throws:
  `java.io.IOException`

#### deleteDirectory

    protected void deleteDirectory​(java.io.File directory)
                            throws java.io.IOException

Throws:
  `java.io.IOException`

#### getDate

    public static java.util.Date getDate​(int year,
                                         int month,
                                         int day)

#### getDate

    protected static java.util.Date getDate​(int year,
                                            int month,
                                            int day,
                                            java.util.TimeZone tz)

#### getDate

    protected static java.util.Date getDate​(int year,
                                            int month,
                                            int day,
                                            int hourOfDay,
                                            int minute,
                                            int second,
                                            java.util.TimeZone tz)

#### assertCommandLine

    public void assertCommandLine​(java.lang.String expectedCommand,
                                  java.io.File expectedWorkingDirectory,
                                  org.codehaus.plexus.util.cli.Commandline actualCommand)
                           throws java.io.IOException

Throws:
  `java.io.IOException`

#### isSystemCmd

    public static boolean isSystemCmd​(java.lang.String cmd)

Parameters:
  `cmd` - the executable to run, not null.
Returns:
  `true`

#### printSystemCmdUnavail

    public static void printSystemCmdUnavail​(java.lang.String cmd,
                                             java.lang.String testName)