Class ScmTestCase

  • All Implemented Interfaces:
    junit.framework.Test
    Direct Known Subclasses:
    AbstractCvsScmTest, CvsUpdateCommandTest, 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.
    • Constructor Summary

      Constructors 
      Constructor Description
      ScmTestCase()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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)  
      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()  
      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.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
      • debugExecute

        private static boolean debugExecute
      • secDispatcher

        private org.sonatype.plexus.components.sec.dispatcher.SecDispatcher secDispatcher
    • 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
      • 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
        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 if and only if the command is on the path
      • printSystemCmdUnavail

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