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 StringadminQuery(String request)StringcheckAdminResponseStatus(String xml, String code)StringcheckResponseStatus(String xml, String code)voidclose()Stringdelete(String request)Processes a DELETE request using a URL path (with no context path) + optional query params, e.g.StringgetAdminURL()StringgetBaseURL()RESTfulServerProvidergetServerProvider()Stringhead(String request)Processes a HEAD request using a URL path (with no context path) + optional query params and returns the response content.Stringpost(String request, String content)Processes a POST request using a URL path (with no context path) + optional query params, e.g.Stringput(String request, String content)Processes a PUT request using a URL path (with no context path) + optional query params, e.g.Stringquery(String request)Processes a "query" using a URL path (with no context path) + optional query params, e.g.voidreload()Reloads the first core listed in the response to the core admin handler STATUS commandvoidsetServerProvider(RESTfulServerProvider serverProvider)Stringupdate(String xml)Processes an "update" (add, commit or optimize) and returns the response as a String.StringvalidatePut(String request, String content, String... tests)Validates an XML PUT response against an array of XPath test stringsStringvalidateQuery(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 ExceptionReloads the first core listed in the response to the core admin handler STATUS command- Specified by:
reloadin 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:
updatein classBaseTestHarness- Parameters:
xml- The XML of the update- Returns:
- The XML response to the update
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
-