Package org.apache.solr.util
Class TestHarness
java.lang.Object
org.apache.solr.util.BaseTestHarness
org.apache.solr.util.TestHarness
This class provides a simple harness that may be useful when writing testcases.
This class lives in the tests-framework source tree (and not in the test source tree), so that it will be included with even the most minimal solr distribution, in order to encourage plugin writers to create unit tests for their plugins.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassA Factory that generates LocalSolrQueryRequest objects using a specified set of default options.static class -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTestHarness(String coreName, String dataDir, String solrConfig, String indexSchema) TestHarness(String coreName, String dataDirectory, org.apache.solr.core.SolrConfig solrConfig, String schemaFile) TestHarness(String coreName, String dataDir, org.apache.solr.core.SolrConfig solrConfig, org.apache.solr.schema.IndexSchema indexSchema) TestHarness(String dataDirectory, org.apache.solr.core.SolrConfig solrConfig, String schemaFile) TestHarness(String dataDirectory, org.apache.solr.core.SolrConfig solrConfig, org.apache.solr.schema.IndexSchema indexSchema) TestHarness(Path solrHome, String solrXml) Create a TestHarness using a specific solr home directory and solr xmlTestHarness(org.apache.solr.core.CoreContainer coreContainer) TestHarness(org.apache.solr.core.NodeConfig nodeConfig) TestHarness(org.apache.solr.core.NodeConfig config, org.apache.solr.core.CoresLocator coresLocator) Create a TestHarness using a specific config -
Method Summary
Modifier and TypeMethodDescriptionstatic org.apache.solr.core.NodeConfigbuildTestNodeConfig(Path solrHome) voidclose()Shuts down and frees any resourcesstatic org.apache.solr.core.SolrConfigcreateConfig(Path solrHome, String confFile) Creates a SolrConfig object for the default test core usingcreateConfig(Path,String,String)static org.apache.solr.core.SolrConfigcreateConfig(Path solrHome, String coreName, String confFile) Creates a SolrConfig object for the specified coreName assuming it follows the basic conventions of being a relative path in the solrHome dir.org.apache.solr.core.SolrCoregetCore()Gets a core that does not have its refcount incremented (i.e.org.apache.solr.core.CoreContainerorg.apache.solr.core.SolrCoreGets the core with its reference count incremented.getRequestFactory(String qtype, int start, int limit) getRequestFactory(String qtype, int start, int limit, String... args) 0 and Even numbered args are keys, Odd numbered args are values.getRequestFactory(String qtype, int start, int limit, Map<String, String> args) Processes a "query" using a user constructed SolrQueryRequest, and closes the request at the end.query(org.apache.solr.request.SolrQueryRequest req) Processes a "query" using a user constructed SolrQueryRequestorg.apache.solr.response.SolrQueryResponsequeryAndResponse(String handler, org.apache.solr.request.SolrQueryRequest req) It is the users responsibility to close the request object when done with it.voidreload()Reloads the coreProcesses an "update" (add, commit or optimize) and returns the response as a String.validateQuery(org.apache.solr.request.SolrQueryRequest req, String... tests) Validates a "query" response against an array of XPath test stringsMethods inherited from class org.apache.solr.util.BaseTestHarness
checkUpdateStatus, commit, deleteById, deleteByQuery, evaluateXPath, getXmlDocumentBuilder, getXpath, makeSimpleDoc, optimize, simpleTag, validateErrorUpdate, validateUpdate, validateXPath
-
Field Details
-
coreName
-
container
protected volatile org.apache.solr.core.CoreContainer container -
updater
public org.apache.solr.handler.UpdateRequestHandler updater
-
-
Constructor Details
-
TestHarness
public TestHarness(org.apache.solr.core.CoreContainer coreContainer) -
TestHarness
public TestHarness(String coreName, String dataDirectory, org.apache.solr.core.SolrConfig solrConfig, String schemaFile) - Parameters:
coreName- to initializedataDirectory- path for index data, will not be cleaned upsolrConfig- solronfig instanceschemaFile- schema filename
-
TestHarness
public TestHarness(String dataDirectory, org.apache.solr.core.SolrConfig solrConfig, String schemaFile) - Parameters:
dataDirectory- path for index data, will not be cleaned upsolrConfig- solronfig instanceschemaFile- schema filename
-
TestHarness
public TestHarness(String dataDirectory, org.apache.solr.core.SolrConfig solrConfig, org.apache.solr.schema.IndexSchema indexSchema) - Parameters:
dataDirectory- path for index data, will not be cleaned upsolrConfig- solrconfig instanceindexSchema- schema instance
-
TestHarness
- Parameters:
coreName- to initializedataDir- path for index data, will not be cleaned upsolrConfig- solrconfig resource nameindexSchema- schema resource name
-
TestHarness
-
TestHarness
Create a TestHarness using a specific solr home directory and solr xml- Parameters:
solrHome- the solr home directorysolrXml- the text of a solrxml
-
TestHarness
public TestHarness(org.apache.solr.core.NodeConfig nodeConfig) -
TestHarness
public TestHarness(org.apache.solr.core.NodeConfig config, org.apache.solr.core.CoresLocator coresLocator) Create a TestHarness using a specific config- Parameters:
config- the ConfigSolr to use
-
-
Method Details
-
createConfig
public static org.apache.solr.core.SolrConfig createConfig(Path solrHome, String coreName, String confFile) Creates a SolrConfig object for the specified coreName assuming it follows the basic conventions of being a relative path in the solrHome dir. (ie:${solrHome}/${coreName}/conf/${confFile} -
createConfig
Creates a SolrConfig object for the default test core usingcreateConfig(Path,String,String) -
buildTestNodeConfig
-
getCoreContainer
public org.apache.solr.core.CoreContainer getCoreContainer() -
getCore
public org.apache.solr.core.SolrCore getCore()Gets a core that does not have its refcount incremented (i.e. there is no need to close when done). This is not MT safe in conjunction with reloads! -
getCoreInc
public org.apache.solr.core.SolrCore getCoreInc()Gets the core with its reference count incremented. You must call core.close() when done! -
reload
Description copied from class:BaseTestHarnessReloads the core- Specified by:
reloadin classBaseTestHarness- Throws:
Exception
-
update
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
-
validateQuery
public String validateQuery(org.apache.solr.request.SolrQueryRequest req, String... tests) throws Exception Validates a "query" response against an array of XPath test strings- Parameters:
req- 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- See Also:
-
query
Processes a "query" using a user constructed SolrQueryRequest- Parameters:
req- the Query to process, will be closed.- Returns:
- The XML response to the query
- Throws:
Exception- any exception in the response.IOException- if there is a problem writing the XML- See Also:
-
query
Processes a "query" using a user constructed SolrQueryRequest, and closes the request at the end.- Parameters:
handler- the name of the request handler to process the requestreq- the Query to process, will be closed.- Returns:
- The XML response to the query
- Throws:
Exception- any exception in the response.IOException- if there is a problem writing the XML- See Also:
-
queryAndResponse
public org.apache.solr.response.SolrQueryResponse queryAndResponse(String handler, org.apache.solr.request.SolrQueryRequest req) throws Exception It is the users responsibility to close the request object when done with it. This method does not set/clear SolrRequestInfo- Throws:
Exception
-
close
public void close()Shuts down and frees any resources -
getRequestFactory
-
getRequestFactory
public TestHarness.LocalRequestFactory getRequestFactory(String qtype, int start, int limit, String... args) 0 and Even numbered args are keys, Odd numbered args are values. -
getRequestFactory
public TestHarness.LocalRequestFactory getRequestFactory(String qtype, int start, int limit, Map<String, String> args)
-