Class WebDavServer

  • All Implemented Interfaces:
    AutoCloseable

    public final class WebDavServer
    extends Object
    implements AutoCloseable
    A simple WebDav server against which integration tests can be run.
    Author:
    XIMA MEDIA GmbH
    • Method Detail

      • davUri

        public String davUri​(String... path)
        Parameters:
        path - Path on the WebDAV server.
        Returns:
        URL for the given path, with the dav:// protocol.
      • exists

        public boolean exists​(String... path)
                       throws IOException
        Parameters:
        path - Path to check.
        Returns:
        true if the given path exists on the server, or false otherwise.
        Throws:
        IOException - When the path could not be checked, usually due to a network error.
      • fileContentAsByteArray

        public byte[] fileContentAsByteArray​(String... path)
                                      throws IOException
        Parameters:
        path - Path on the WebDAV server.
        Returns:
        The contents of the file at the given path, as a byte array.
        Throws:
        IOException - When the file could not be read.
      • fileContentAsStream

        public InputStream fileContentAsStream​(String... path)
                                        throws IOException
        Parameters:
        path - Path on the WebDAV server.
        Returns:
        The contents of the file at the given path, as an input stream.
        Throws:
        IOException - When the file could not be read.
      • fileContentAsUtf8String

        public String fileContentAsUtf8String​(String... path)
                                       throws IOException
        Parameters:
        path - Path on the WebDAV server.
        Returns:
        The contents of the file at the given path, as a string with the UTF-8 encoding.
        Throws:
        IOException - When the file could not be read.
      • httpUri

        public String httpUri​(String... paths)
        Parameters:
        paths - Path on the WebDAV server.
        Returns:
        URL for the given path, with the http:// protocol.
      • lsDir

        public List<com.github.sardine.DavResource> lsDir​(int depth,
                                                          String... path)
                                                   throws IOException
        Parameters:
        depth - The depth to look at (use 0 for single resource, 1 for directory listing, -1 for infinite recursion)
        path - Path to process.
        Returns:
        The contents of the given directory.
        Throws:
        IOException - When the path could not be checked, usually due to a network error.
      • lsDir

        public List<com.github.sardine.DavResource> lsDir​(String... path)
                                                   throws IOException
        Parameters:
        path - Path to process.
        Returns:
        The contents of the given directory, not including subdirectories.
        Throws:
        IOException - When the path could not be checked, usually due to a network error.
      • lsDirAll

        public List<com.github.sardine.DavResource> lsDirAll​(String... path)
                                                      throws IOException
        Parameters:
        path - Path to process.
        Returns:
        The contents of the given directory, including subdirectories.
        Throws:
        IOException - When the path could not be checked, usually due to a network error.
      • mkdir

        public void mkdir​(String... path)
                   throws IOException
        Parameters:
        path - Path on the WebDAV server.
        Throws:
        IOException - Creates the given directory. The directory itself must not exist, all parent directories must exist.
      • put

        public void put​(String path,
                        byte[] data)
                 throws IOException
        Parameters:
        path - Path on the WebDAV server.
        data - The data of the file.
        Throws:
        IOException - Creates a file at the given path and the given data. All parent directories must exist.
      • put

        public void put​(String path,
                        File data)
                 throws IOException
        Parameters:
        path - Path on the WebDAV server.
        data - A file with the data.
        Throws:
        IOException - Creates a file at the given path and the given data. All parent directories must exist.
      • put

        public void put​(String path,
                        InputStream data)
                 throws IOException
        Parameters:
        path - Path on the WebDAV server.
        data - The data of the file.
        Throws:
        IOException - Creates a file at the given path and the given data. All parent directories must exist.
      • put

        public void put​(String path,
                        Path data)
                 throws IOException
        Parameters:
        path - Path on the WebDAV server.
        data - The data of the file.
        Throws:
        IOException - Creates a file at the given path and the given data. All parent directories must exist.
      • put

        public void put​(String path,
                        String data,
                        Charset charset)
                 throws IOException
        Parameters:
        path - Path on the WebDAV server.
        data - A string with the data.
        charset - Encoding to use for converting the string to bytes.
        Throws:
        IOException - Creates a file at the given path and the given data. All parent directories must exist.
      • putUtf8String

        public void putUtf8String​(String path,
                                  String data)
                           throws IOException
        Parameters:
        path - Path on the WebDAV server.
        data - The data of the file.
        Throws:
        IOException - Creates a file at the given path and the given data. All parent directories must exist.
      • newServer

        public static WebDavServer newServer()
                                      throws Exception
        Starts a new WebDAV server that does not required credentials.
        Returns:
        A new server that does not require credentials.
        Throws:
        Exception - When the server could not be created or when it failed to start.
      • newServer

        public static WebDavServer newServer​(String username,
                                             String password,
                                             Path tmpDir)
                                      throws Exception
        Starts a new WebDAV server secured with the given credentials.
        Parameters:
        username - User name that must be specified when connecting to the server.
        password - Password that must be specified when connecting to the server.
        tmpDir - Temporary directory for caching files.
        Returns:
        A new server that requires the given user name and password for a connection.
        Throws:
        Exception - When the server could not be created or when it failed to start.