package org.exist.xmldb.concurrent;
import java.io.File;
import org.exist.xmldb.XmldbURI;
import org.exist.xmldb.concurrent.action.XQueryUpdateAction;
import org.junit.After;
import org.junit.Before;
import org.xmldb.api.base.Collection;
import org.xmldb.api.base.ResourceSet;
import org.xmldb.api.base.XMLDBException;
import org.xmldb.api.modules.XMLResource;
import org.xmldb.api.modules.XQueryService;
import static org.junit.Assert.assertEquals;
public class ConcurrentQueryUpdateTest extends ConcurrentTestBase {
private final static String URI = XmldbURI.LOCAL_DB;
@SuppressWarnings("unused")
private File tempFile;
public ConcurrentQueryUpdateTest() {
super(URI, "C1");
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
Collection col = getTestCollection();
XMLResource res = (XMLResource) col.createResource("testappend.xml", "XMLResource");
res.setContent("<root><node id=\"1\"/></root>");
col.storeResource(res);
addAction(new XQueryUpdateAction(URI + "/C1", "testappend.xml"), 20, 0, 0);
addAction(new XQueryUpdateAction(URI + "/C1", "testappend.xml"), 20, 0, 0);
}
@After
@Override
public void tearDown() throws XMLDBException {
Collection col = getTestCollection();
XQueryService service = (XQueryService) col.getService("XQueryService", "1.0");
ResourceSet result = service.query("distinct-values(//node/@id)");
assertEquals(result.getSize(), 41);
for (int i = 0; i < result.getSize(); i++) {
XMLResource next = (XMLResource) result.getResource((long)i);
next.getContent();
}
super.tearDown();
DBUtils.shutdownDB(URI);
}
}