Package org.geotools

Class TestData

  • All Implemented Interfaces:
    Runnable

    public final class TestData
    extends TestData
    Provides access to the common test-data directories provided in the sample-data module. This directory is shared by test suites in other modules.

    This file has to live in the org.geotools root package in order to get access to the org/geotools/test-data directory. If you don't need this directory, then use the TestData class provided in the org.geotools.resources directory.

    Since:
    2.2
    Author:
    Martin Desruisseaux
    • Method Detail

      • url

        public static URL url​(String name)
                       throws FileNotFoundException
        Access to getResource(name) as a non-null URL. At the difference of getResource, this method throws an exception if the resource is not found. This provides a more explicit explanation about the failure reason than the infamous NullPointerException.
        Parameters:
        name - Path to file in org/geotools/test-data.
        Returns:
        The URL to the test-data resource.
        Throws:
        FileNotFoundException - if the resource is not found.
      • file

        public static File file​(String name)
                         throws IOException
        Access to getResource(name) as a non-null File. You can access the test-data directory with:
         TestData.file(null);
         
        Parameters:
        name - Path to file in org/geotools/test-data.
        Returns:
        The file to the test-data resource.
        Throws:
        FileNotFoundException - if the file is not found.
        IOException - if the resource can't be fetched for an other reason.
      • openStream

        public static InputStream openStream​(String name)
                                      throws IOException
        Provides a non-null InputStream for named test data. It is the caller responsability to close this stream after usage.
        Parameters:
        name - Path to file in org/geotools/test-data.
        Returns:
        The input stream.
        Throws:
        FileNotFoundException - if the resource is not found.
        IOException - if an error occurs during an input operation.
      • openReader

        public static LineNumberReader openReader​(String name)
                                           throws IOException
        Provides a BufferedReader for named test data. The buffered reader is provided as an LineNumberReader instance, which is useful for displaying line numbers where error occur. It is the caller responsability to close this reader after usage.
        Parameters:
        name - Path to file in org/geotools/test-data.
        Returns:
        The buffered reader.
        Throws:
        FileNotFoundException - if the resource is not found.
        IOException - if an error occurs during an input operation.
      • openChannel

        public static ReadableByteChannel openChannel​(String name)
                                               throws IOException
        Provides a channel for named test data. It is the caller responsability to close this chanel after usage.
        Parameters:
        name - Path to file in org/geotools/test-data.
        Returns:
        The chanel.
        Throws:
        FileNotFoundException - if the resource is not found.
        IOException - if an error occurs during an input operation.
      • copy

        public static File copy​(Object caller,
                                String name)
                         throws IOException
        Copies the named resources from the sample-data module to the test-data directory in an other module. For example if TestData.copy(this, "foo.txt") is invoked inside a test suite in the org.geotools.foo package, then this method copies org/geotools/test-data/foo.txt (from sample-data module) to org/geotools/foo/test-data/foo.txt (in the foo module).

        This method is useful when a test case needs to access a resource through a File, for example because it want to open it using RandomAccess. Because the resources provided in the sample-data module are available to other modules as a JAR file, other modules can only access them through an URL unless they copy them in their own test-data directory.

        If the named file already exists in the caller test-data directory, then this method does nothing. It make it safe to invoke this method many time in a test suite, since this method should not copy the file more than once for a given JVM execution.

        The file will be deleted on exit if and only if it has been modified. Callers don't need to worry about cleanup, because the files are copied in the target/.../test-data directory, which is not versioned by Git and is cleaned by Maven on mvn clean execution.

        Parameters:
        caller - Calling class or object used to locate the destination test-data.
        name - Path to file in org/geotools/test-data.
        Returns:
        The file to the org/geotools/caller-package/test-data resource copy, returned for convenience.
        Throws:
        FileNotFoundException - if the file is not found.
        IOException - if the resource can't be fetched for an other reason.
      • copy

        public static File copy​(Object caller,
                                String name,
                                String directoryName)
                         throws IOException
        See the other copy, this one accepts a target directory name inside "test-data" (useful for test with directory containing spaces)
        Throws:
        IOException