Package org.apache.solr.util
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 Summary
Constructors Constructor Description RestTestHarness(RESTfulServerProvider serverProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
adminQuery(String request)
String
checkAdminResponseStatus(String xml, String code)
String
checkResponseStatus(String xml, String code)
void
close()
String
delete(String request)
Processes a DELETE request using a URL path (with no context path) + optional query params, e.g.String
getAdminURL()
String
getBaseURL()
RESTfulServerProvider
getServerProvider()
String
head(String request)
Processes a HEAD request using a URL path (with no context path) + optional query params and returns the response content.String
post(String request, String content)
Processes a POST request using a URL path (with no context path) + optional query params, e.g.String
put(String request, String content)
Processes a PUT request using a URL path (with no context path) + optional query params, e.g.String
query(String request)
Processes a "query" using a URL path (with no context path) + optional query params, e.g.void
reload()
Reloads the first core listed in the response to the core admin handler STATUS commandvoid
setServerProvider(RESTfulServerProvider serverProvider)
String
update(String xml)
Processes an "update" (add, commit or optimize) and returns the response as a String.String
validatePut(String request, String content, String... tests)
Validates an XML PUT response against an array of XPath test stringsString
validateQuery(String request, String... tests)
Validates an XML "query" response against an array of XPath test strings-
Methods inherited from class org.apache.solr.util.BaseTestHarness
checkUpdateStatus, commit, deleteById, deleteByQuery, evaluateXPath, getXmlDocumentBuilder, getXpath, makeSimpleDoc, optimize, simpleTag, validateErrorUpdate, validateUpdate, validateXPath
-
-
-
-
Constructor Detail
-
RestTestHarness
public RestTestHarness(RESTfulServerProvider serverProvider)
-
-
Method Detail
-
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 processcontent
- the content to send with the PUT requesttests
- 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 paramscontent
- 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 paramscontent
- 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 classBaseTestHarness
- 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 classBaseTestHarness
- Parameters:
xml
- The XML of the update- Returns:
- The XML response to the update
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
-