use of org.exist.xmldb.IndexQueryService in project exist by eXist-db.
the class XQueryTriggerTest method documentDelete.
/**
* test a trigger fired by a Document Delete
*/
@Test
public void documentDelete() throws XMLDBException {
final IndexQueryService idxConf = (IndexQueryService) testCollection.getService("IndexQueryService", "1.0");
idxConf.configureCollection(COLLECTION_CONFIG);
final XMLResource doc = (XMLResource) testCollection.createResource(DOCUMENT_NAME, "XMLResource");
doc.setContent(DOCUMENT_CONTENT);
testCollection.storeResource(doc);
testCollection.removeResource(testCollection.getResource(DOCUMENT_NAME));
idxConf.configureCollection(EMPTY_COLLECTION_CONFIG);
final XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0");
service.setProperty(OutputKeys.INDENT, "no");
ResourceSet result = service.query(BEFORE + CREATE + DOCUMENT + documentURI);
assertEquals(1, result.getSize());
result = service.query(AFTER + CREATE + DOCUMENT + documentURI);
assertEquals(1, result.getSize());
result = service.query(BEFORE + DELETE + DOCUMENT + documentURI);
assertEquals(1, result.getSize());
result = service.query(AFTER + DELETE + DOCUMENT + documentURI);
assertEquals(1, result.getSize());
result = service.query(EVENTS);
assertEquals(4, result.getSize());
// TODO: document itself
// result = service.query("/events/event[@id = 'trigger3']/document/test");
// assertEquals(1, result.getSize());
// assertXMLEqual(MODIFIED_DOCUMENT_CONTENT, result.getResource(0).getContent().toString());
}
use of org.exist.xmldb.IndexQueryService in project exist by eXist-db.
the class XQueryTriggerTest method documentBinaryDelete.
/**
* test a trigger fired by a Binary Document Delete
*/
@Test
public void documentBinaryDelete() throws XMLDBException {
final IndexQueryService idxConf = (IndexQueryService) testCollection.getService("IndexQueryService", "1.0");
idxConf.configureCollection(COLLECTION_CONFIG);
// this will fire the trigger
final Resource res = testCollection.createResource(BINARY_DOCUMENT_NAME, "BinaryResource");
final byte[] content = Base64.decodeBase64(BINARY_DOCUMENT_CONTENT);
res.setContent(content);
testCollection.storeResource(res);
testCollection.removeResource(testCollection.getResource(BINARY_DOCUMENT_NAME));
idxConf.configureCollection(EMPTY_COLLECTION_CONFIG);
final XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0");
service.setProperty(OutputKeys.INDENT, "no");
ResourceSet result = service.query(BEFORE + CREATE + DOCUMENT + binaryURI);
assertEquals(1, result.getSize());
result = service.query(AFTER + CREATE + DOCUMENT + binaryURI);
assertEquals(1, result.getSize());
result = service.query(BEFORE + DELETE + DOCUMENT + binaryURI);
assertEquals(1, result.getSize());
result = service.query(AFTER + DELETE + DOCUMENT + binaryURI);
assertEquals(1, result.getSize());
result = service.query(EVENTS);
assertEquals(4, result.getSize());
// TODO: document itself
// result = service.query("/events/event[@id = 'trigger3'][@type = 'prepare'][collection = '" + DBBroker.ROOT_COLLECTION + "/" + TEST_COLLECTION + "'][uri = '" + DBBroker.ROOT_COLLECTION + "/" + TEST_COLLECTION + "/" + BINARY_DOCUMENT_NAME + "'][event = 'DELETE-DOCUMENT']/document");
// assertEquals(1, result.getSize());
// assertEquals("<document>" + BINARY_DOCUMENT_CONTENT + "</document>", result.getResource(0).getContent().toString());
}
use of org.exist.xmldb.IndexQueryService in project exist by eXist-db.
the class XQueryTriggerTest method collectionMove.
/**
* test a trigger fired by a Collection manipulations
*/
@Test
public void collectionMove() throws XMLDBException, URISyntaxException {
final IndexQueryService idxConf = (IndexQueryService) testCollection.getService("IndexQueryService", "1.0");
idxConf.configureCollection(COLLECTION_CONFIG);
final XmldbURI srcURI = XmldbURI.xmldbUriFor("/db/testXQueryTrigger/test");
final XmldbURI dstURI = XmldbURI.xmldbUriFor("/db/testXQueryTrigger/test-dst");
final EXistCollectionManagementService service = (EXistCollectionManagementService) testCollection.getService("CollectionManagementService", "1.0");
final Collection src = service.createCollection("test");
assertNotNull(src);
final Collection dst = service.createCollection("test-dst");
assertNotNull(dst);
service.move(srcURI, dstURI, null);
// remove the trigger for the Collection under test
idxConf.configureCollection(EMPTY_COLLECTION_CONFIG);
ResourceSet result = existEmbeddedServer.executeQuery(BEFORE + CREATE + COLLECTION + testCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(AFTER + CREATE + COLLECTION + testCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(BEFORE + CREATE + COLLECTION + testDstCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(AFTER + CREATE + COLLECTION + testDstCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(BEFORE + MOVE + COLLECTION + testCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(AFTER + MOVE + COLLECTION + testDstTestCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(EVENTS);
assertEquals(6, result.getSize());
}
use of org.exist.xmldb.IndexQueryService in project exist by eXist-db.
the class XQueryTriggerTest method collectionDelete.
/**
* test a trigger fired by a Collection manipulations
*/
@Test
public void collectionDelete() throws XMLDBException {
final IndexQueryService idxConf = (IndexQueryService) testCollection.getService("IndexQueryService", "1.0");
idxConf.configureCollection(COLLECTION_CONFIG);
final CollectionManagementService service = (CollectionManagementService) testCollection.getService("CollectionManagementService", "1.0");
final Collection collection = service.createCollection("test");
assertNotNull(collection);
service.removeCollection("test");
// remove the trigger for the Collection under test
idxConf.configureCollection(EMPTY_COLLECTION_CONFIG);
ResourceSet result = existEmbeddedServer.executeQuery(BEFORE + CREATE + COLLECTION + testCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(AFTER + CREATE + COLLECTION + testCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(BEFORE + DELETE + COLLECTION + testCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery(AFTER + DELETE + COLLECTION + testCollectionURI);
assertEquals(1, result.getSize());
result = existEmbeddedServer.executeQuery("/events/event");
assertEquals(4, result.getSize());
}
use of org.exist.xmldb.IndexQueryService in project exist by eXist-db.
the class XQueryTriggerTest method documentCreate.
/**
* test a trigger fired by storing a new Document
*/
@Test
public void documentCreate() throws XMLDBException {
// configure the Collection with the trigger under test
final IndexQueryService idxConf = (IndexQueryService) testCollection.getService("IndexQueryService", "1.0");
idxConf.configureCollection(COLLECTION_CONFIG);
// this will fire the trigger
final XMLResource doc = (XMLResource) testCollection.createResource(DOCUMENT_NAME, "XMLResource");
doc.setContent(DOCUMENT_CONTENT);
testCollection.storeResource(doc);
// remove the trigger for the Collection under test
idxConf.configureCollection(EMPTY_COLLECTION_CONFIG);
final XPathQueryService service = (XPathQueryService) testCollection.getService("XPathQueryService", "1.0");
ResourceSet result = service.query(BEFORE + CREATE + DOCUMENT + documentURI);
assertEquals(1, result.getSize());
result = service.query(AFTER + CREATE + DOCUMENT + documentURI);
assertEquals(1, result.getSize());
result = service.query(EVENTS);
assertEquals(2, result.getSize());
// TODO: document itself
// result = service.query(afterCreate+objDocument+documentURI+"/document/test");
// assertEquals(1, result.getSize());
// assertXMLEqual(DOCUMENT_CONTENT, ((XMLResource)result.getResource(0)).getContent().toString());
}
Aggregations