Class MavenTestingUtils


  • public final class MavenTestingUtils
    extends java.lang.Object
    Common utility methods for working with JUnit tests cases in a maven friendly way.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  MavenTestingUtils.TestID  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.nio.file.Path basePath  
      private static java.nio.file.Path targetPath  
      private static java.nio.file.Path testResourcesPath  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private MavenTestingUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.io.File getBaseDir()
      Obtain a File reference to the maven ${basedir} for the module.
      static java.nio.file.Path getBasePath()
      Obtain a Path reference to the maven ${basedir} for the module.
      static java.net.URI getBaseURI()
      Get the Basedir for the project as a URI
      static java.io.File getProjectDir​(java.lang.String path)
      Get a directory reference to a required directory in the project module path, based on relative path references from maven ${basedir}.
      static java.nio.file.Path getProjectDirPath​(java.lang.String path)
      Get a Path reference to a required directory in the project module path, based on relative path references from maven ${basedir}.
      static java.io.File getProjectFile​(java.lang.String path)
      Get a File reference to a required file in the project module path, based on relative path references from maven ${basedir}.
      static java.nio.file.Path getProjectFilePath​(java.lang.String path)
      Get a Path reference to a required file in the project module path, based on relative path references from maven ${basedir}.
      static java.io.File getTargetDir()
      Get the File reference to the /target directory for this project.
      static java.io.File getTargetFile​(java.lang.String path)
      Create a File object for a path in the /target directory.
      static java.nio.file.Path getTargetPath()
      Get the Path reference to the /target directory for this project.
      static java.nio.file.Path getTargetPath​(java.lang.String path)
      Create a Path object for a path in the /target directory.
      static java.io.File getTargetTestingDir()
      Get a File reference to the maven ${basedir}/target/tests/ directory.
      static java.io.File getTargetTestingDir​(java.lang.Class<?> testclass, java.lang.String testmethodname)
      Obtain a testing directory reference in maven ${basedir}/target/tests/${condensed-classname}/${methodname} path that uses an condensed directory name based on the testclass and subdirectory based on the testmethod being run.
      static java.io.File getTargetTestingDir​(java.lang.String testname)
      Get a File reference to the maven ${basedir}/target/tests/test-${testname} using the supplied testname
      static java.io.File getTargetTestingDir​(junit.framework.TestCase test)
      Get a File reference to the ${basedir}/target/tests/test-${testname} directory.
      static java.nio.file.Path getTargetTestingPath()
      Get a Path reference to the maven ${basedir}/target/tests/ path.
      static java.nio.file.Path getTargetTestingPath​(java.lang.Class<?> testclass, java.lang.String testmethodname)
      Obtain a testing directory reference in maven ${basedir}/target/tests/${condensed-classname}/${methodname} path that uses an condensed directory name based on the testclass and subdirectory based on the testmethod being run.
      static java.nio.file.Path getTargetTestingPath​(java.lang.String testname)
      Get a Path reference to the maven ${basedir}/target/tests/test-${testname} using the supplied testname
      static java.nio.file.Path getTargetTestingPath​(junit.framework.TestCase test)
      Get a Path reference to the ${basedir}/target/tests/test-${testname} directory.
      static java.net.URI getTargetURI​(java.lang.String path)
      Get a URI reference to a path (File or Dir) within the maven "${basedir}/target" directory.
      static java.net.URL getTargetURL​(java.lang.String path)
      Get a URL reference to a path (File or Dir) within the maven "${basedir}/target" directory.
      private static MavenTestingUtils.TestID getTestID()
      Using junit 3.x naming standards for unit tests and test method names, attempt to discover the unit test name from the execution stack.
      static java.io.File getTestResourceDir​(java.lang.String name)
      Get a dir from the maven ${basedir}/src/test/resource directory.
      static java.io.File getTestResourceFile​(java.lang.String name)
      Get a file from the maven ${basedir}/src/test/resource directory.
      static java.nio.file.Path getTestResourcePath​(java.lang.String name)
      Get a path resource (File or Dir) from the maven ${basedir}/src/test/resource directory.
      static java.nio.file.Path getTestResourcePathDir​(java.lang.String name)
      Get a dir from the maven ${basedir}/src/test/resource directory.
      static java.nio.file.Path getTestResourcePathFile​(java.lang.String name)
      Get a file from the maven ${basedir}/src/test/resource directory.
      static java.io.File getTestResourcesDir()
      Get the File reference to the maven ${basedir}/src/test/resources directory
      static java.nio.file.Path getTestResourcesPath()
      Get the Path reference to the maven ${basedir}/src/test/resources directory
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • basePath

        private static java.nio.file.Path basePath
      • testResourcesPath

        private static java.nio.file.Path testResourcesPath
      • targetPath

        private static java.nio.file.Path targetPath
    • Constructor Detail

      • MavenTestingUtils

        private MavenTestingUtils()
    • Method Detail

      • getBaseDir

        public static java.io.File getBaseDir()
        Obtain a File reference to the maven ${basedir} for the module.

        Convenience method for MavenTestingUtils.getBasePath().toFile()

        Returns:
        the equivalent to the maven ${basedir} property.
        See Also:
        getBasePath()
      • getBasePath

        public static java.nio.file.Path getBasePath()
        Obtain a Path reference to the maven ${basedir} for the module.

        Note: while running in maven, the ${basedir} is populated by maven and used by the surefire-plugin.
        While running in eclipse, the ${basedir} property is unset, resulting in this method falling back to ${user.dir} equivalent use.

        Returns:
        the equivalent to the maven ${basedir} property.
      • getBaseURI

        public static java.net.URI getBaseURI()
        Get the Basedir for the project as a URI
        Returns:
        the URI for the project basedir
      • getTargetDir

        public static java.io.File getTargetDir()
        Get the File reference to the /target directory for this project.

        Convenience method for MavenTestingUtils.getTargetPath().toFile()

        Returns:
        the directory path to the target directory.
        See Also:
        getTargetPath()
      • getTargetPath

        public static java.nio.file.Path getTargetPath()
        Get the Path reference to the /target directory for this project.

        This is roughly equivalent to the ${project.build.directory} property.

        Note: this implementation does not inspect the pom.xml for non-standard locations of the ${project.build.directory} property. (it always assumes /target)

        Returns:
        the directory path to the /target directory.
      • getTargetFile

        public static java.io.File getTargetFile​(java.lang.String path)
        Create a File object for a path in the /target directory.

        Convenience method for MavenTestingUtils.getTargetPath("foo").toFile()

        Parameters:
        path - the path desired, no validation of existence is performed.
        Returns:
        the File to the path.
        See Also:
        getTargetPath(String)
      • getTargetPath

        public static java.nio.file.Path getTargetPath​(java.lang.String path)
        Create a Path object for a path in the /target directory.
        Parameters:
        path - the path desired, no validation of existence is performed.
        Returns:
        the File to the path.
      • getTargetTestingDir

        public static java.io.File getTargetTestingDir()
        Get a File reference to the maven ${basedir}/target/tests/ directory.

        Convenience method for MavenTestingUtils.getTargetTestingPath().toFile()

        Returns:
        the maven ${basedir}/target/tests/ directory. Note: will not validate that the directory exists, or create the directory)
      • getTargetTestingPath

        public static java.nio.file.Path getTargetTestingPath()
        Get a Path reference to the maven ${basedir}/target/tests/ path.
        Returns:
        the maven ${basedir}/target/tests/ directory. Note: will not validate that the directory exists, or create the directory)
      • getTargetTestingDir

        public static java.io.File getTargetTestingDir​(java.lang.String testname)
        Get a File reference to the maven ${basedir}/target/tests/test-${testname} using the supplied testname

        Convenience method for MavenTestingUtils.getTargetTestingPath(testname).toFile()

        Parameters:
        testname - the testname to create directory against.
        Returns:
        the maven ${basedir}/target/tests/test-${testname} directory
      • getTargetTestingPath

        public static java.nio.file.Path getTargetTestingPath​(java.lang.String testname)
        Get a Path reference to the maven ${basedir}/target/tests/test-${testname} using the supplied testname
        Parameters:
        testname - the testname to create directory against.
        Returns:
        the maven ${basedir}/target/tests/test-${testname} directory
      • getTargetTestingDir

        public static java.io.File getTargetTestingDir​(junit.framework.TestCase test)
        Get a File reference to the ${basedir}/target/tests/test-${testname} directory. Uses the JUnit 3.x TestCase.getName() to make a unique directory name per test.

        Convenience method for MavenTestingUtils.getTargetTestingPath(TestCase.getName()).toFile()

        Parameters:
        test - the junit 3.x testcase to base this new directory on.
        Returns:
        the maven ${basedir}/target/tests/test-${testname} directory.
      • getTargetTestingPath

        public static java.nio.file.Path getTargetTestingPath​(junit.framework.TestCase test)
        Get a Path reference to the ${basedir}/target/tests/test-${testname} directory. Uses the JUnit 3.x TestCase.getName() to make a unique directory name per test.

        Convenience method for MavenTestingUtils.getTargetTestingPath(TestCase.getName())

        Parameters:
        test - the junit 3.x testcase to base this new directory on.
        Returns:
        the maven ${basedir}/target/tests/test-${testname} directory.
        See Also:
        getTargetTestingPath(String)
      • getTargetURI

        public static java.net.URI getTargetURI​(java.lang.String path)
        Get a URI reference to a path (File or Dir) within the maven "${basedir}/target" directory.

        Convenience method for MavenTestingUtils.getTargetPath(path).toUri()

        Parameters:
        path - the relative path to use
        Returns:
        the URI reference to the target path
      • getTargetURL

        public static java.net.URL getTargetURL​(java.lang.String path)
                                         throws java.net.MalformedURLException
        Get a URL reference to a path (File or Dir) within the maven "${basedir}/target" directory.

        Convenience method for MavenTestingUtils.getTargetURI(path).toURL()

        Parameters:
        path - the relative path to use
        Returns:
        the URL reference to the target path
        Throws:
        java.net.MalformedURLException - if unable to create a new target url due to URL error.
      • getTargetTestingDir

        public static java.io.File getTargetTestingDir​(java.lang.Class<?> testclass,
                                                       java.lang.String testmethodname)
        Obtain a testing directory reference in maven ${basedir}/target/tests/${condensed-classname}/${methodname} path that uses an condensed directory name based on the testclass and subdirectory based on the testmethod being run.

        Note: the @Rule TestingDir is a better choice in most cases.

        Convenience method for MavenTestingUtils.getTargetTestingDir(testclass, testmethodname).toFile()

        Parameters:
        testclass - the class for the test case
        testmethodname - the test method name
        Returns:
        the File path to the testname specific testing directory underneath the ${basedir}/target/tests/ sub directory
        See Also:
        FS, TestingDir
      • getTargetTestingPath

        public static java.nio.file.Path getTargetTestingPath​(java.lang.Class<?> testclass,
                                                              java.lang.String testmethodname)
        Obtain a testing directory reference in maven ${basedir}/target/tests/${condensed-classname}/${methodname} path that uses an condensed directory name based on the testclass and subdirectory based on the testmethod being run.

        Note: the @Rule TestingDir is a better choice in most cases.

        Parameters:
        testclass - the class for the test case
        testmethodname - the test method name
        Returns:
        the File path to the testname specific testing directory underneath the ${basedir}/target/tests/ sub directory
        See Also:
        FS, TestingDir
      • getProjectFile

        public static java.io.File getProjectFile​(java.lang.String path)
        Get a File reference to a required file in the project module path, based on relative path references from maven ${basedir}.

        Note: will throw assertion error if path does point to an existing file

        Convenience method for MavenTestingUtils.getProjectFilePath(path).toFile()

        Parameters:
        path - the relative path to reference
        Returns:
        the file reference (must exist)
      • getProjectFilePath

        public static java.nio.file.Path getProjectFilePath​(java.lang.String path)
        Get a Path reference to a required file in the project module path, based on relative path references from maven ${basedir}.

        Note: will throw assertion error if path does point to an existing file

        Parameters:
        path - the relative path to reference
        Returns:
        the file reference (must exist)
      • getProjectDir

        public static java.io.File getProjectDir​(java.lang.String path)
        Get a directory reference to a required directory in the project module path, based on relative path references from maven ${basedir}.

        Note: will throw assertion error if path does point to an existing directory

        Convenience method for MavenTestingUtils.getProjectDirPath(path).toFile()

        Parameters:
        path - the relative path to reference
        Returns:
        the directory reference (must exist)
      • getProjectDirPath

        public static java.nio.file.Path getProjectDirPath​(java.lang.String path)
        Get a Path reference to a required directory in the project module path, based on relative path references from maven ${basedir}.

        Note: will throw assertion error if path does point to an existing directory

        Parameters:
        path - the relative path to reference
        Returns:
        the directory reference (must exist)
      • getTestID

        private static MavenTestingUtils.TestID getTestID()
        Using junit 3.x naming standards for unit tests and test method names, attempt to discover the unit test name from the execution stack.
        Returns:
        the unit test id found via execution stack and junit 3.8 naming conventions.
        See Also:
        #getTestIDAsPath()
      • getTestResourcesDir

        public static java.io.File getTestResourcesDir()
        Get the File reference to the maven ${basedir}/src/test/resources directory

        Convenience method for MavenTestingUtils.getTestResourcesPath().toFile()

        Returns:
        the directory File to the maven ${basedir}/src/test/resources directory
      • getTestResourcesPath

        public static java.nio.file.Path getTestResourcesPath()
        Get the Path reference to the maven ${basedir}/src/test/resources directory
        Returns:
        the directory Path to the maven ${basedir}/src/test/resources directory
      • getTestResourceDir

        public static java.io.File getTestResourceDir​(java.lang.String name)
        Get a dir from the maven ${basedir}/src/test/resource directory.

        Note: will throw assertion error if path does point to an existing directory

        Convenience method for MavenTestingUtils.getTestResourcesPathDir(name).toFile()

        Parameters:
        name - the name of the path to get (it must exist as a dir)
        Returns:
        the dir in the maven ${basedir}/src/test/resource path
      • getTestResourcePathDir

        public static java.nio.file.Path getTestResourcePathDir​(java.lang.String name)
        Get a dir from the maven ${basedir}/src/test/resource directory.

        Note: will throw assertion error if path does point to an existing directory

        Parameters:
        name - the name of the path to get (it must exist as a dir)
        Returns:
        the dir in the maven ${basedir}/src/test/resource path
      • getTestResourceFile

        public static java.io.File getTestResourceFile​(java.lang.String name)
        Get a file from the maven ${basedir}/src/test/resource directory.

        Note: will throw assertion error if path does point to an existing file

        Parameters:
        name - the name of the path to get (it must exist as a file)
        Returns:
        the file in maven ${basedir}/src/test/resource
      • getTestResourcePathFile

        public static java.nio.file.Path getTestResourcePathFile​(java.lang.String name)
        Get a file from the maven ${basedir}/src/test/resource directory.

        Note: will throw assertion error if path does point to an existing file

        Parameters:
        name - the name of the path to get (it must exist as a file)
        Returns:
        the file in maven ${basedir}/src/test/resource
      • getTestResourcePath

        public static java.nio.file.Path getTestResourcePath​(java.lang.String name)
        Get a path resource (File or Dir) from the maven ${basedir}/src/test/resource directory.
        Parameters:
        name - the name of the path to get (it must exist)
        Returns:
        the path in maven ${basedir}/src/test/resource