From: Jean-Marc V. <jm...@us...> - 2004-07-13 14:18:53
|
Update of /cvsroot/exist/eXist-1.0/src/org/exist/xquery/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17265/src/org/exist/xquery/test Modified Files: XPathQueryTest.java Log Message: remove reference to Shakespeare documents; added testStarAxis() that currently :-( demonstrates a bug Index: XPathQueryTest.java =================================================================== RCS file: /cvsroot/exist/eXist-1.0/src/org/exist/xquery/test/XPathQueryTest.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** XPathQueryTest.java 9 Jul 2004 14:43:55 -0000 1.3 --- XPathQueryTest.java 13 Jul 2004 14:18:43 -0000 1.4 *************** *** 1,12 **** package org.exist.xquery.test; ! import java.io.File; import junit.framework.TestCase; import org.exist.xmldb.XPathQueryServiceImpl; ! import org.xmldb.api.*; ! import org.xmldb.api.base.*; ! import org.xmldb.api.modules.*; public class XPathQueryTest extends TestCase { --- 1,20 ---- package org.exist.xquery.test; ! import java.util.regex.Matcher; ! import java.util.regex.Pattern; import junit.framework.TestCase; import org.exist.xmldb.XPathQueryServiceImpl; ! import org.xmldb.api.DatabaseManager; ! import org.xmldb.api.base.Collection; ! import org.xmldb.api.base.Database; ! import org.xmldb.api.base.Resource; ! import org.xmldb.api.base.ResourceIterator; ! import org.xmldb.api.base.ResourceSet; ! import org.xmldb.api.base.XMLDBException; ! import org.xmldb.api.modules.CollectionManagementService; ! import org.xmldb.api.modules.XMLResource; ! import org.xmldb.api.modules.XPathQueryService; public class XPathQueryTest extends TestCase { *************** *** 41,44 **** --- 49,54 ---- + "</test>"; + private Collection testCollection; + public XPathQueryTest(String arg0) { super(arg0); *************** *** 52,55 **** --- 62,66 ---- database.setProperty("create-database", "true"); DatabaseManager.registerDatabase(database); + Collection root = DatabaseManager.getCollection( *************** *** 61,70 **** "CollectionManagementService", "1.0"); ! root = service.createCollection("test"); ! ! XMLResource doc = ! (XMLResource) root.createResource("r_and_j.xml", "XMLResource"); ! doc.setContent(new File("samples/shakespeare/r_and_j.xml")); ! root.storeResource(doc); } catch (ClassNotFoundException e) { } catch (InstantiationException e) { --- 72,82 ---- "CollectionManagementService", "1.0"); ! testCollection = service.createCollection("test"); ! assertNotNull(testCollection); ! ! // XMLResource doc = ! // (XMLResource) root.createResource("r_and_j.xml", "XMLResource"); ! // doc.setContent(new File("samples/shakespeare/r_and_j.xml")); ! // root.storeResource(doc); } catch (ClassNotFoundException e) { } catch (InstantiationException e) { *************** *** 75,97 **** } public void testNumbers() { try { ! Collection testCollection = ! DatabaseManager.getCollection(URI + "/test", "admin", null); ! assertNotNull(testCollection); ! XMLResource doc = ! (XMLResource) testCollection.createResource( ! "numbers.xml", ! "XMLResource"); ! doc.setContent(numbers); ! testCollection.storeResource(doc); ! XPathQueryService service = ! (XPathQueryService) testCollection.getService( ! "XPathQueryService", ! "1.0"); ResourceSet result = service.queryResource("numbers.xml", "sum(/test/item/price)"); ! assertEquals(result.getSize(), 1); ! assertEquals(result.getResource(0).getContent(), "96.94"); result = --- 87,120 ---- } + public void testStarAxis() { + try { + XPathQueryService service = + storeXMLStringAndGetQueryService("numbers.xml", numbers); + + ResourceSet result = service.queryResource( + "numbers.xml", "/*/item" ); + System.out.println("testElements 1: ========" ); printResult(result); + assertEquals( "XPath: /*/item", 4, result.getSize() ); + + result = service.queryResource( + "numbers.xml", "/*/*" ); + System.out.println("testElements 2: ========" ); printResult(result); + assertEquals( "XPath: /*/*", 4, result.getSize() ); + + } catch (XMLDBException e) { + System.out.println("testElements(): XMLDBException: "+e); + fail(e.getMessage()); + } + } + public void testNumbers() { try { ! XPathQueryService service = ! storeXMLStringAndGetQueryService("numbers.xml", numbers); ! ResourceSet result = service.queryResource("numbers.xml", "sum(/test/item/price)"); ! assertEquals( 1, result.getSize() ); ! assertEquals( "96.94", result.getResource(0).getContent() ); result = *************** *** 99,104 **** "numbers.xml", "round(sum(/test/item/price))"); ! assertEquals(result.getSize(), 1); ! assertEquals(result.getResource(0).getContent(), "97.0"); result = --- 122,127 ---- "numbers.xml", "round(sum(/test/item/price))"); ! assertEquals( 1, result.getSize() ); ! assertEquals( "97.0", result.getResource(0).getContent() ); result = *************** *** 106,111 **** "numbers.xml", "floor(sum(/test/item/stock))"); ! assertEquals(result.getSize(), 1); ! assertEquals(result.getResource(0).getContent(), "86.0"); result = --- 129,134 ---- "numbers.xml", "floor(sum(/test/item/stock))"); ! assertEquals( 1, result.getSize() ); ! assertEquals( "86.0", result.getResource(0).getContent()); result = *************** *** 113,117 **** "numbers.xml", "/test/item[round(price + 3) > 60]"); ! assertEquals(result.getSize(), 1); result = --- 136,140 ---- "numbers.xml", "/test/item[round(price + 3) > 60]"); ! assertEquals( 1, result.getSize() ); result = *************** *** 121,126 **** "123456789123456789123456789123456789123456789 )"); assertEquals("minimum of big integers", ! result.getResource(0).getContent(), ! "123456789123456789123456789" ); } catch (XMLDBException e) { --- 144,149 ---- "123456789123456789123456789123456789123456789 )"); assertEquals("minimum of big integers", ! "123456789123456789123456789", ! result.getResource(0).getContent() ); } catch (XMLDBException e) { *************** *** 131,147 **** public void testStrings() { try { ! Collection testCollection = ! DatabaseManager.getCollection(URI + "/test", "admin", null); ! assertNotNull(testCollection); ! XMLResource doc = ! (XMLResource) testCollection.createResource( ! "strings.xml", ! "XMLResource"); ! doc.setContent(strings); ! testCollection.storeResource(doc); ! XPathQueryService service = ! (XPathQueryService) testCollection.getService( ! "XPathQueryService", ! "1.0"); ResourceSet result = service.queryResource( --- 154,160 ---- public void testStrings() { try { ! XPathQueryService service = ! storeXMLStringAndGetQueryService("strings.xml", strings); ! ResourceSet result = service.queryResource( *************** *** 149,153 **** "substring(/test/string[1], 1, 5)"); assertEquals(1, result.getSize()); ! assertEquals(result.getResource(0).getContent(), "Hello"); result = --- 162,166 ---- "substring(/test/string[1], 1, 5)"); assertEquals(1, result.getSize()); ! assertEquals( "Hello", result.getResource(0).getContent() ); result = *************** *** 162,180 **** } public void testNamespaces() { try { ! Collection testCollection = ! DatabaseManager.getCollection(URI + "/test", "admin", null); ! assertNotNull(testCollection); ! XMLResource doc = ! (XMLResource) testCollection.createResource( ! "namespaces.xml", ! "XMLResource"); ! doc.setContent(namespaces); ! testCollection.storeResource(doc); ! XPathQueryService service = ! (XPathQueryService) testCollection.getService( ! "XPathQueryService", ! "1.0"); service.setNamespace("t", "http://www.foo.com"); ResourceSet result = --- 175,201 ---- } + /** + * @return + * @throws XMLDBException + */ + private XPathQueryService storeXMLStringAndGetQueryService(String documentName, + String content) throws XMLDBException { + XMLResource doc = + (XMLResource) testCollection.createResource( + documentName, "XMLResource" ); + doc.setContent(content); + testCollection.storeResource(doc); + XPathQueryService service = + (XPathQueryService) testCollection.getService( + "XPathQueryService", + "1.0"); + return service; + } + public void testNamespaces() { try { ! XPathQueryService service = ! storeXMLStringAndGetQueryService("namespaces.xml", namespaces); ! service.setNamespace("t", "http://www.foo.com"); ResourceSet result = *************** *** 198,222 **** public void testNestedElements() { try { ! Collection testCollection = ! DatabaseManager.getCollection(URI + "/test", "admin", null); ! assertNotNull(testCollection); ! XMLResource doc = ! (XMLResource) testCollection.createResource( ! "nested.xml", ! "XMLResource"); ! doc.setContent(nested); ! testCollection.storeResource(doc); ! XPathQueryService service = ! (XPathQueryService) testCollection.getService( ! "XPathQueryService", ! "1.0"); ResourceSet result = service.queryResource("nested.xml", "//c"); ! for (ResourceIterator i = result.getIterator(); ! i.hasMoreResources(); ! ) { ! Resource r = i.nextResource(); ! System.out.println(r.getContent()); ! } ! assertEquals(result.getSize(), 3); } catch (XMLDBException e) { fail(e.getMessage()); --- 219,228 ---- public void testNestedElements() { try { ! XPathQueryService service = ! storeXMLStringAndGetQueryService("nested.xml", nested); ! ResourceSet result = service.queryResource("nested.xml", "//c"); ! printResult(result); ! assertEquals( 3, result.getSize() ); } catch (XMLDBException e) { fail(e.getMessage()); *************** *** 225,268 **** public void testStaticVariables() { try { - Collection testCollection = - DatabaseManager.getCollection(URI + "/test", "admin", null); - assertNotNull(testCollection); XMLResource doc = (XMLResource) testCollection.createResource( ! "nested.xml", ! "XMLResource"); ! doc.setContent(nested); testCollection.storeResource(doc); ! XPathQueryServiceImpl service = ! (XPathQueryServiceImpl) testCollection.getService( "XPathQueryService", "1.0"); ! service.declareVariable("name", "MONTAGUE"); ! ResourceSet result = service.query("//SPEECH[SPEAKER=$name]"); ! for (ResourceIterator i = result.getIterator(); ! i.hasMoreResources(); ! ) { ! Resource r = i.nextResource(); ! System.out.println(r.getContent()); ! } ! assertEquals(result.getSize(), 10); } catch (XMLDBException e) { fail(e.getMessage()); } } public void testMembersAsResource() { try { ! Collection testCollection = ! DatabaseManager.getCollection(URI + "/test", "admin", null); ! assertNotNull(testCollection); ! XPathQueryService service = ! (XPathQueryService) testCollection.getService( ! "XPathQueryService", ! "1.0"); ! ResourceSet result = service.query("//SPEECH[LINE &= 'marriage']"); Resource r = result.getMembersAsResource(); ! System.out.println(r.getContent()); } catch (XMLDBException e) { fail(e.getMessage()); --- 231,303 ---- public void testStaticVariables() { + ResourceSet result = null; try { XMLResource doc = (XMLResource) testCollection.createResource( ! "numbers.xml", "XMLResource" ); ! doc.setContent(numbers); testCollection.storeResource(doc); ! XPathQueryService service = ! (XPathQueryService) testCollection.getService( "XPathQueryService", "1.0"); ! ! XPathQueryServiceImpl service2 = (XPathQueryServiceImpl) service; ! service2.declareVariable("name", "MONTAGUE"); ! service2.declareVariable("name", "43"); ! ! //ResourceSet result = service.query("//SPEECH[SPEAKER=$name]"); ! result = service2.query( doc, "//item[stock=$name]"); ! ! System.out.println( "testStaticVariables 1: ========" ); printResult(result); ! result = service2.query("$name"); ! assertEquals( 1, result.getSize() ); ! ! System.out.println("testStaticVariables 2: ========" ); printResult(result); ! result = service2.query( doc, "//item[stock=43]"); ! assertEquals( 1, result.getSize() ); ! ! System.out.println("testStaticVariables 3: ========" ); printResult(result); ! result = service2.query( doc, "//item"); ! assertEquals( 4, result.getSize() ); ! ! // assertEquals( 10, result.getSize() ); } catch (XMLDBException e) { + System.out.println("testStaticVariables(): XMLDBException: "+e); fail(e.getMessage()); } } + /** + * @param result + * @throws XMLDBException + */ + private void printResult(ResourceSet result) throws XMLDBException { + for (ResourceIterator i = result.getIterator(); + i.hasMoreResources(); + ) { + Resource r = i.nextResource(); + System.out.println(r.getContent()); + } + } + public void testMembersAsResource() { try { ! // XPathQueryService service = ! // (XPathQueryService) testCollection.getService( ! // "XPathQueryService", ! // "1.0"); ! // ResourceSet result = service.query("//SPEECH[LINE &= 'marriage']"); ! XPathQueryService service = ! storeXMLStringAndGetQueryService("numbers.xml", numbers); ! ResourceSet result = service.query("//item/price"); ! Resource r = result.getMembersAsResource(); ! String content = (String)r.getContent(); ! System.out.println(content); ! ! Pattern p = Pattern.compile( ".*(<price>.*){4}", Pattern.DOTALL); ! Matcher m = p.matcher(content); ! assertTrue( "get whole document numbers.xml", m.matches() ); } catch (XMLDBException e) { fail(e.getMessage()); |