Class RestTestHarness

java.lang.Object
org.apache.solr.util.BaseTestHarness
org.apache.solr.util.RestTestHarness
All Implemented Interfaces:
Closeable, AutoCloseable

public class RestTestHarness extends BaseTestHarness implements Closeable
Facilitates testing Solr's REST API via a provided embedded Jetty
  • Constructor Details

  • Method Details

    • getBaseURL

      public String getBaseURL()
    • setServerProvider

      public void setServerProvider(RESTfulServerProvider serverProvider)
    • getServerProvider

      public RESTfulServerProvider getServerProvider()
    • getAdminURL

      public String getAdminURL()
    • validateQuery

      public String validateQuery(String request, String... tests) throws Exception
      Validates an XML "query" response against an array of XPath test strings
      Parameters:
      request - the Query to process
      Returns:
      null if all good, otherwise the first test that fails.
      Throws:
      Exception - any exception in the response.
      IOException - if there is a problem writing the XML
    • validatePut

      public String validatePut(String request, String content, String... tests) throws Exception
      Validates an XML PUT response against an array of XPath test strings
      Parameters:
      request - the PUT request to process
      content - the content to send with the PUT request
      tests - the validating XPath tests
      Returns:
      null if all good, otherwise the first test that fails.
      Throws:
      Exception - any exception in the response.
      IOException - if there is a problem writing the XML
    • query

      public String query(String request) throws IOException
      Processes a "query" using a URL path (with no context path) + optional query params, e.g. "/schema/fields?indent=off"
      Parameters:
      request - the URL path and optional query params
      Returns:
      The response to the query
      Throws:
      IOException - any exception in the response.
    • adminQuery

      public String adminQuery(String request) throws IOException
      Throws:
      IOException
    • head

      public String head(String request) throws IOException
      Processes a HEAD request using a URL path (with no context path) + optional query params and returns the response content.
      Parameters:
      request - The URL path and optional query params
      Returns:
      The response to the HEAD request
      Throws:
      IOException
    • put

      public String put(String request, String content) throws IOException
      Processes a PUT request using a URL path (with no context path) + optional query params, e.g. "/schema/fields/newfield", PUTs the given content, and returns the response content.
      Parameters:
      request - The URL path and optional query params
      content - The content to include with the PUT request
      Returns:
      The response to the PUT request
      Throws:
      IOException
    • delete

      public String delete(String request) throws IOException
      Processes a DELETE request using a URL path (with no context path) + optional query params, e.g. "/schema/analysis/protwords/english", and returns the response content.
      Parameters:
      request - the URL path and optional query params
      Returns:
      The response to the DELETE request
      Throws:
      IOException
    • post

      public String post(String request, String content) throws IOException
      Processes a POST request using a URL path (with no context path) + optional query params, e.g. "/schema/fields/newfield", PUTs the given content, and returns the response content.
      Parameters:
      request - The URL path and optional query params
      content - The content to include with the POST request
      Returns:
      The response to the POST request
      Throws:
      IOException
    • checkResponseStatus

      public String checkResponseStatus(String xml, String code) throws Exception
      Throws:
      Exception
    • checkAdminResponseStatus

      public String checkAdminResponseStatus(String xml, String code) throws Exception
      Throws:
      Exception
    • reload

      public void reload() throws Exception
      Reloads the first core listed in the response to the core admin handler STATUS command
      Specified by:
      reload in class BaseTestHarness
      Throws:
      Exception
    • update

      public String update(String xml)
      Processes an "update" (add, commit or optimize) and returns the response as a String.
      Specified by:
      update in class BaseTestHarness
      Parameters:
      xml - The XML of the update
      Returns:
      The XML response to the update
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException