Author: natalia
Date: Tue Jul 24 18:42:23 2007
New Revision: 559274
URL: http://svn.apache.org/viewvc?view=rev&rev=559274
Log:
Tests for Name/Value indexers on empty elements. Result checking fixed.
Modified:
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
Modified:
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
URL:
http://svn.apache.org/viewvc/xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java?view=diff&rev=559274&r1=559273&r2=559274
==============================================================================
---
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
(original)
+++
xml/xindice/trunk/java/tests/src/org/apache/xindice/integration/client/services/IndexedSearchTest.java
Tue Jul 24 18:42:23 2007
@@ -74,13 +74,13 @@
if (!aCollectionCreated) {
try {
- this.client.dropCollection(PARENT_COLLECTION_PATH,
COLLECTION_NAME);
+ client.dropCollection(PARENT_COLLECTION_PATH, COLLECTION_NAME);
} catch (Exception anException) {
/*
* ignore problems during drop collection above...
*/
} finally {
- this.client.createCollection(PARENT_COLLECTION_PATH,
COLLECTION_NAME);
+ client.createCollection(PARENT_COLLECTION_PATH,
COLLECTION_NAME);
aCollectionCreated = true;
}
}
@@ -104,7 +104,7 @@
" <last>Jones" + aNumber + "</last>" +
" <phone type='home'>555-345-6789</phone>" +
"</person>";
- this.client.insertDocument(COLLECTION_PATH, "doc" +
String.valueOf(anIndex), aDocument);
+ client.insertDocument(COLLECTION_PATH, "doc" +
String.valueOf(anIndex), aDocument);
}
}
@@ -192,10 +192,9 @@
*/
public void runTest() throws Exception {
try {
- Result aResult;
addTestDocuments();
- aResult = runNonIndexed();
+ Result aResult = runNonIndexed();
checkResult(aResult);
long aNonIndexedTime = aResult.getElapsedTime();
aResult = runIndexed();
@@ -270,12 +269,12 @@
}
if (itsExpectedResources != null && itsExpectedResources.length >
1) {
- for (int anIndex = 0; anIndex < itsExpectedResources.length /
2; anIndex += 2) {
+ for (int anIndex = 0; anIndex < itsExpectedResources.length /
2; anIndex++) {
XMLResource aResource = (XMLResource)
aResourceSet.getResource(anIndex);
Node aNode = aResource.getContentAsDOM();
- int anExpectedSourceDocumentIndex = ((Integer)
itsExpectedResources[anIndex]).intValue();
- String anExpected = "<?xml version=\"1.0\"?>\n" +
addSource((String) itsExpectedResources[anIndex + 1],
-
TEST_DOCUMENT_PREFIX + anIndex,
+ int anExpectedSourceDocumentIndex = ((Integer)
itsExpectedResources[anIndex * 2]).intValue();
+ String anExpected = "<?xml version=\"1.0\"?>\n" +
addSource((String) itsExpectedResources[anIndex * 2 + 1],
+
TEST_DOCUMENT_PREFIX + anExpectedSourceDocumentIndex,
IndexedSearchTest.COLLECTION_PATH);
String anActual = TextWriter.toString(aNode);
//itsLog.info(itsDescription);
@@ -284,7 +283,7 @@
//itsLog.info(anExpected);
//itsLog.info("Actual:");
//itsLog.info(anActual);
- XMLAssert.assertXMLEqual("While checking target Resource "
+ anIndex / 2,
+ XMLAssert.assertXMLEqual("While checking target Resource "
+ anIndex,
anExpected, anActual);
}
}
@@ -317,10 +316,10 @@
*/
public void createIndex() throws Exception {
if (!itsIndexCreated) {
- IndexedSearchTest.this.client.createIndexer(COLLECTION_PATH,
- "<?xml
version='1.0'?><index name='" + itsTestIndexName + "' " +
-
"class='org.apache.xindice.core.indexer." + itsTestIndexType + "Indexer' " +
- "pattern='" +
itsTestIndexPattern + "' />");
+ client.createIndexer(COLLECTION_PATH,
+ "<?xml version='1.0'?><index name='" +
itsTestIndexName + "' " +
+ "class='org.apache.xindice.core.indexer."
+ itsTestIndexType + "Indexer' " +
+ "pattern='" + itsTestIndexPattern + "'
/>");
itsIndexCreated = true;
// Wait for the indexer to do the background indexing
@@ -333,7 +332,7 @@
*/
public void dropIndex() throws Exception {
if (itsIndexCreated) {
- IndexedSearchTest.this.client.dropIndexer(COLLECTION_PATH,
itsTestIndexName);
+ client.dropIndexer(COLLECTION_PATH, itsTestIndexName);
itsIndexCreated = false;
}
}
@@ -386,22 +385,40 @@
"<?xml version='1.0'?>" +
"<person number3='yes'>" +
"<first surname='no' given='yes'>Sally</first>" +
- "<last surname='yes'>aSm</last>" +
+ "<last surname='yes'>Sam</last>" +
"<phone call='no' type='work'>555-345-6789</phone>" +
- "<address> " +
+ "<address>" +
"<street>" +
"<number given='no' />" +
"</street>" +
"</address>" +
+ "</person>",
+
+ "<?xml version='1.0'?>" +
+ "<person number3='yes'>" +
+ "<first surname='no' given='yes'>Sally</first>" +
+ "<last surname='yes'>Sam</last>" +
+ "<phone call='no' type='work'>555-345-6789</phone>" +
+ "<address>" +
+ "<street>" +
+ "<number given='no' />Main St" +
+ "</street>" +
+ "</address>" +
"</person>"
},
- 1, // expected result count
+ 2, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1),
- "<address> " +
+ new Integer(0),
+ "<address>" +
"<street>" +
"<number given='no' />" +
"</street>" +
+ "</address>",
+ new Integer(1),
+ "<address>" +
+ "<street>" +
+ "<number given='no' />Main St" +
+ "</street>" +
"</address>"
});
@@ -428,7 +445,7 @@
"<second surname='no' given='yes'>Wally</second>" +
"<last surname='yes'>aSm</last>" +
"<phone call='no' type='work'>555-345-6789</phone>" +
- "<address> " +
+ "<address>" +
"<street>" +
"<number given='no' />" +
"</street>" +
@@ -437,7 +454,7 @@
},
1, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1),
+ new Integer(0),
"<second surname='no' given='yes'>Wally</second>"
});
@@ -464,7 +481,7 @@
"<first surname='no' given='yes'>Sally</first>" +
"<last surname='yes'>aSm</last>" +
"<phone call='no' type='work'>555-345-6789</phone>" +
- "<address> " +
+ "<address>" +
"<street>" +
"<number given='no' />" +
"</street>" +
@@ -473,7 +490,7 @@
},
1, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1),
+ new Integer(0),
"<phone call='no' type='work'>555-345-6789</phone>"
});
@@ -501,7 +518,7 @@
"<second surname='no' given='yes'>Wally</second>" +
"<last surname='yes'>aSm</last>" +
"<phone call='no' type='work'>555-345-6789</phone>" +
- "<address> " +
+ "<address>" +
"<street>" +
"<number given='no' />" +
"</street>" +
@@ -510,7 +527,7 @@
},
1, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1),
+ new Integer(0),
"<second surname='no' given='yes'>Wally</second>",
});
@@ -537,7 +554,7 @@
"<first surname='no' given='yes'>Sally</first>" +
"<last surname='yes'>aSm</last>" +
"<phone call='no' type='work'>555-345-6789</phone>" +
- "<address> " +
+ "<address>" +
"<street>" +
"<number given='no' />" +
"</street>" +
@@ -546,15 +563,8 @@
},
2, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1),
- "<first surname='no' given='yes'>Sally</first>",
-
- new Integer(1),
- "<address> " +
- "<street>" +
- "<number given='no' />" +
- "</street>" +
- "</address>"
+ new Integer(0), "<first surname='no'
given='yes'>Sally</first>",
+ new Integer(0), "<number given='no' />"
});
aTest.runTest();
@@ -581,7 +591,7 @@
"<first surname='no' given='yes'>Sally</first>" +
"<last surname='yes'>aSm</last>" +
"<phone call='no' type='work'>555-345-6789</phone>" +
- "<address> " +
+ "<address>" +
"<street>" +
"<number given='no' />" +
"</street>" +
@@ -590,8 +600,8 @@
},
2, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1), "<first surname='no'
given='yes'>Sally</first>",
- new Integer(1), "<number given='no' />"
+ new Integer(0), "<first surname='no'
given='yes'>Sally</first>",
+ new Integer(0), "<number given='no' />"
});
aTest.runTest();
@@ -638,7 +648,7 @@
},
2, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1), "<person number3='yes'>" +
+ new Integer(0), "<person number3='yes'>" +
"<first surname='no'
given='yes'>Sally</first>" +
"<last surname='yes'>Smith</last>" +
"<phone call='no'
type='work'>555-345-6789</phone>" +
@@ -649,7 +659,7 @@
"</address>" +
"</person>",
- new Integer(2), "<person number3='yes'>" +
+ new Integer(1), "<person number3='yes'>" +
"<first surname='no'
given='yes'>Sally</first>" +
"<last surname='yes'>Smithers</last>" +
"<phone call='no'
type='work'>555-345-6789</phone>" +
@@ -693,7 +703,7 @@
},
1, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1), "<phone call='no'
type='work'>555-345-6789</phone>"
+ new Integer(0), "<phone call='no'
type='work'>555-345-6789</phone>"
});
aTest.runTest();
@@ -740,8 +750,59 @@
},
2, // expected result count
new Object[] { // expected resources to check for
(can be empty or partial set)
- new Integer(1), "<phone call='no'
type='work'>555-345-6789</phone>",
+ new Integer(0), "<phone call='no'
type='work'>555-345-6789</phone>",
new Integer(1), "<phone call='no'
type='work'>525-345-6789</phone>"
+ });
+
+ aTest.runTest();
+ }
+
+ /**
+ * Tests an equals search query for an empty Element value that should be
resolvable using
+ * indexed searching on a value index.
+ */
+ public void testSpecificElementNoAttributeValueIndexedEmptyStringSearch()
+ throws Exception {
+ // search all records whose address is empty
+ IndexerTestDefinition aTest = new IndexerTestDefinition(
+ "testSpecificElementNoAttributeValueIndexedEqualsSearch", //
description
+ "//address[. = '']", // query
+ "SENA", // index name
+ "Value", // index type
+ "address", // index pattern
+ 8, // indexed query speedup expected
(conservative)
+ new String[] { // test docs specifically for this
test
+ "<?xml version='1.0'?>" +
+ "<person number3='yes'>" +
+ "<first surname='no' given='yes'>Sally</first>" +
+ "<last surname='yes'>Smith</last>" +
+ "<phone call='no' type='work'>555-345-6789</phone>" +
+ "<address>" +
+ "<street>" +
+ "<number given='no' />" +
+ "</street>" +
+ "</address>" +
+ "</person>",
+
+ "<?xml version='1.0'?>" +
+ "<person number3='yes'>" +
+ "<first surname='no' given='yes'>Sally</first>" +
+ "<last surname='yes'>Smithers</last>" +
+ "<phone call='no' type='work'>555-345-6789</phone>" +
+ "<address>" +
+ "<street>" +
+ "<number given='no' />Main St" +
+ "</street>" +
+ "</address>" +
+ "</person>"
+ },
+ 1, // expected result count
+ new Object[] { // expected resources to check for
(can be empty or partial set)
+ new Integer(0), "<address>" +
+ "<street>" +
+ "<number given='no' />" +
+ "</street>" +
+ "</address>"
});
aTest.runTest();