org.apache.jackrabbit.test.api.query
Class AbstractQueryTest

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.apache.jackrabbit.test.JUnitTest
              extended by org.apache.jackrabbit.test.AbstractJCRTest
                  extended by org.apache.jackrabbit.test.api.query.AbstractQueryTest
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
AbstractQueryLevel2Test, DerefQueryLevel1Test, ElementTest, GetLanguageTest, GetPersistentQueryPathLevel1Test, GetPersistentQueryPathTest, GetPropertyNamesTest, GetStatementTest, GetSupportedQueryLanguagesTest, OrderByDateTest, OrderByDoubleTest, OrderByLongTest, OrderByMultiTypeTest, OrderByStringTest, PredicatesTest, QueryResultNodeIteratorTest, SimpleSelectionTest, SQLJcrPathTest, SQLJoinTest, SQLOrderByTest, SQLPathTest, TextNodeTest, XPathDocOrderTest, XPathJcrPathTest, XPathOrderByTest, XPathPosIndexTest

public abstract class AbstractQueryTest
extends AbstractJCRTest

Abstract base class for query test cases.


Field Summary
protected  String jcrContains
          Resolved Name for jcr:contains
protected  String jcrDeref
          Resolved Name for jcr:deref
protected  String jcrPath
          Resolved Name for jcr:path
protected  String jcrRoot
          Resolved Name for jcr:root
protected  String jcrScore
          Resolved Name for jcr:score
 
Fields inherited from class org.apache.jackrabbit.test.AbstractJCRTest
helper, isReadOnly, jcrBaseVersion, jcrCreated, jcrFrozenNode, jcrFrozenUuid, jcrlockIsDeep, jcrLockOwner, jcrMergeFailed, jcrMixinTypes, jcrPredecessors, jcrPrimaryType, jcrRootVersion, jcrSuccessors, jcrSystem, jcrUUID, jcrVersionHistory, mixLockable, mixReferenceable, mixVersionable, nodeName1, nodeName2, nodeName3, nodeName4, NS_JCR_URI, NS_MIX_URI, NS_NT_URI, NS_SV_URI, ntBase, ntFrozenNode, ntQuery, ntVersion, ntVersionHistory, ntVersionLabels, propertyName1, propertyName2, superuser, testNodeType, testNodeTypeNoChildren, testPath, testRoot, testRootNode, workspaceName
 
Fields inherited from class org.apache.jackrabbit.test.JUnitTest
log
 
Constructor Summary
AbstractQueryTest()
           
 
Method Summary
protected  void checkResult(QueryResult result, int hits)
          Checks if the result contains a number of hits.
protected  void checkResult(QueryResult result, int hits, int properties)
          Checks if the result contains a number of hits and properties.
protected  void checkResult(QueryResult result, Node[] nodes)
          Checks if the result set contains exactly the nodes.
protected  Query createQuery(org.apache.jackrabbit.test.api.query.Statement statement)
          Create a Query for a given Statement.
protected  Query createQuery(String statement, String language)
          Creates a Query for the given statement in the requested language
protected  String escapeIdentifierForSQL(String identifier)
          Escape an identifier suitable for the SQL parser
protected  void evaluateResultOrder(QueryResult queryResult, String propName, boolean descending)
          Checks if the QueryResult is ordered according order property in direction of related argument.
protected  QueryResult execute(org.apache.jackrabbit.test.api.query.Statement statement)
          Creates and executes a Query for the given Statement
protected  QueryResult execute(String statement, String language)
          Creates and executes a Query for a given Statement in a given query language
protected  void executeSqlQuery(Session session, String sql, Node[] nodes)
          Executes the sql query and checks the results against the specified nodes.
protected  void executeXPathQuery(Session session, String xpath, Node[] nodes)
          Executes the xpath query and checks the results against the specified nodes.
protected  void setUp()
          Set-up the configuration values used for the test.
protected  Node[] toArray(NodeIterator it)
          Returns the nodes in it as an array of Nodes.
 
Methods inherited from class org.apache.jackrabbit.test.AbstractJCRTest
cleanUp, cleanUpTestRoot, createRandomString, ensureCanSetProperty, ensureCanSetProperty, ensureCanSetProperty, ensureMultipleWorkspacesSupported, getNonExistingWorkspaceName, getProperty, getSize, isSupported, needsMixin, run, tearDown
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

jcrScore

protected String jcrScore
Resolved Name for jcr:score


jcrPath

protected String jcrPath
Resolved Name for jcr:path


jcrRoot

protected String jcrRoot
Resolved Name for jcr:root


jcrContains

protected String jcrContains
Resolved Name for jcr:contains


jcrDeref

protected String jcrDeref
Resolved Name for jcr:deref

Constructor Detail

AbstractQueryTest

public AbstractQueryTest()
Method Detail

setUp

protected void setUp()
              throws Exception
Set-up the configuration values used for the test. Per default retrieves a session, configures testRoot, and nodetype and checks if the query language for the current language is available.

Overrides:
setUp in class AbstractJCRTest
Throws:
Exception

createQuery

protected Query createQuery(org.apache.jackrabbit.test.api.query.Statement statement)
                     throws RepositoryException
Create a Query for a given Statement.

Parameters:
statement - the query should be created for
Returns:
Throws:
RepositoryException
See Also:
createQuery(String, String)

createQuery

protected Query createQuery(String statement,
                            String language)
                     throws RepositoryException
Creates a Query for the given statement in the requested language

Parameters:
statement - the query should be created for
language - query language to be used for Query creation
Returns:
Throws:
RepositoryException

execute

protected QueryResult execute(org.apache.jackrabbit.test.api.query.Statement statement)
                       throws RepositoryException
Creates and executes a Query for the given Statement

Parameters:
statement - to execute
Returns:
Throws:
RepositoryException
See Also:
execute(String, String)

execute

protected QueryResult execute(String statement,
                              String language)
                       throws RepositoryException
Creates and executes a Query for a given Statement in a given query language

Parameters:
statement - the query should be build for
language - query language the stement is written in
Returns:
Throws:
RepositoryException

checkResult

protected void checkResult(QueryResult result,
                           int hits)
                    throws RepositoryException
Checks if the result contains a number of hits.

Parameters:
result - the QueryResult.
hits - the number of expected hits.
Throws:
RepositoryException - if an error occurs while iterating over the result nodes.

checkResult

protected void checkResult(QueryResult result,
                           int hits,
                           int properties)
                    throws RepositoryException
Checks if the result contains a number of hits and properties.

Parameters:
result - the QueryResult.
hits - the number of expected hits.
properties - the number of expected properties.
Throws:
RepositoryException - if an error occurs while iterating over the result nodes.

evaluateResultOrder

protected void evaluateResultOrder(QueryResult queryResult,
                                   String propName,
                                   boolean descending)
                            throws RepositoryException,
                                   NotExecutableException
Checks if the QueryResult is ordered according order property in direction of related argument.

Parameters:
queryResult - to be tested
propName - Name of the porperty to order by
descending - if true order has to be descending
Throws:
RepositoryException
NotExecutableException - in case of less than two results or all results have same size of value in its order-property

executeXPathQuery

protected void executeXPathQuery(Session session,
                                 String xpath,
                                 Node[] nodes)
                          throws RepositoryException
Executes the xpath query and checks the results against the specified nodes.

Parameters:
session - the session to use for the query.
xpath - the xpath query.
nodes - the expected result nodes.
Throws:
RepositoryException

executeSqlQuery

protected void executeSqlQuery(Session session,
                               String sql,
                               Node[] nodes)
                        throws RepositoryException
Executes the sql query and checks the results against the specified nodes.

Parameters:
session - the session to use for the query.
sql - the sql query.
nodes - the expected result nodes.
Throws:
RepositoryException

checkResult

protected void checkResult(QueryResult result,
                           Node[] nodes)
                    throws RepositoryException
Checks if the result set contains exactly the nodes.

Parameters:
result - the query result.
nodes - the expected nodes in the result set.
Throws:
RepositoryException

toArray

protected Node[] toArray(NodeIterator it)
Returns the nodes in it as an array of Nodes.

Parameters:
it - the NodeIterator.
Returns:
the elements of the iterator as an array of Nodes.

escapeIdentifierForSQL

protected String escapeIdentifierForSQL(String identifier)
Escape an identifier suitable for the SQL parser



Copyright © 2004-2008 The Apache Software Foundation. All Rights Reserved.