Class MavenTestingUtils

java.lang.Object
org.eclipse.jetty.toolchain.test.MavenTestingUtils

public final class MavenTestingUtils extends Object
Common utility methods for working with JUnit tests cases in a maven friendly way.
  • Field Details

    • basePath

      private static Path basePath
    • testResourcesPath

      private static Path testResourcesPath
    • targetPath

      private static Path targetPath
  • Constructor Details

    • MavenTestingUtils

      private MavenTestingUtils()
  • Method Details

    • getBaseDir

      public static 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

      public static 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 URI getBaseURI()
      Get the Basedir for the project as a URI
      Returns:
      the URI for the project basedir
    • getTargetDir

      public static 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

      public static 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 File getTargetFile(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

      public static Path getTargetPath(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 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 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 File getTargetTestingDir(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 Path getTargetTestingPath(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 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 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:
    • getTargetURI

      public static URI getTargetURI(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 URL getTargetURL(String path) throws 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:
      MalformedURLException - if unable to create a new target url due to URL error.
    • getTargetTestingDir

      public static File getTargetTestingDir(Class<?> testclass, 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:
    • getTargetTestingPath

      public static Path getTargetTestingPath(Class<?> testclass, 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:
    • getProjectFile

      public static File getProjectFile(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 Path getProjectFilePath(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 File getProjectDir(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 Path getProjectDirPath(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:
      • invalid reference
        #getTestIDAsPath()
    • getTestResourcesDir

      public static 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 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 File getTestResourceDir(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 Path getTestResourcePathDir(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 File getTestResourceFile(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 Path getTestResourcePathFile(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 Path getTestResourcePath(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