package org.exist.dom.memtree; import org.exist.test.ExistXmldbEmbeddedServer; import org.junit.*; import org.xmldb.api.base.ResourceSet; import org.xmldb.api.base.XMLDBException; import static org.junit.Assert.assertEquals; /** * @author Adam Retter <adam.retter@googlemail.com> */ public class MemtreeInXQuery { @ClassRule public static final ExistXmldbEmbeddedServer existEmbeddedServer = new ExistXmldbEmbeddedServer(true, true); @Test public void pi_attributes() throws XMLDBException { final String xquery = "let $doc := document{\n" + " processing-instruction{\"ok\"}{\"ok\"},\n" + " <root/>\n" + "}\n" + "return count($doc//processing-instruction()/@*)"; final ResourceSet result = existEmbeddedServer.executeQuery(xquery); assertEquals(1, result.getSize()); assertEquals(0, Integer.parseInt(result.getResource(0).getContent().toString())); result.clear(); } @Test public void pi_children() throws XMLDBException { final String xquery = "let $doc := document{\n" + " processing-instruction{\"ok\"}{\"ok\"},\n" + " <root/>\n" + "}\n" + "return count($doc//processing-instruction()/node())"; final ResourceSet result = existEmbeddedServer.executeQuery(xquery); assertEquals(1, result.getSize()); assertEquals(0, Integer.parseInt(result.getResource(0).getContent().toString())); result.clear(); } @Test public void pi_descendantAttributes() throws XMLDBException { final String xquery = "let $doc := document{\n" + " processing-instruction{\"ok\"}{\"ok\"},\n" + " <root/>\n" + "}\n" + "return count($doc//processing-instruction()//@*)"; final ResourceSet result = existEmbeddedServer.executeQuery(xquery); assertEquals(1, result.getSize()); assertEquals(0, Integer.parseInt(result.getResource(0).getContent().toString())); result.clear(); } @Test public void attr_attributes() throws XMLDBException { final String xquery = "let $doc := document {\n" + " element a {\n" + " attribute x { \"y\" }\n" + " }\n" + "} return\n" + " count($doc/a/@x/@y)"; final ResourceSet result = existEmbeddedServer.executeQuery(xquery); assertEquals(1, result.getSize()); assertEquals(0, Integer.parseInt(result.getResource(0).getContent().toString())); result.clear(); } @Test public void attr_children() throws XMLDBException { final String xquery = "let $doc := document {\n" + " element a {\n" + " attribute x { \"y\" }\n" + " }\n" + "} return\n" + " count($doc/a/@x/node())"; final ResourceSet result = existEmbeddedServer.executeQuery(xquery); assertEquals(1, result.getSize()); assertEquals(0, Integer.parseInt(result.getResource(0).getContent().toString())); result.clear(); } }