package net.xqj.basex; import static org.junit.Assert.*; import java.io.*; import javax.xml.namespace.*; import javax.xml.xquery.*; import org.basex.*; import org.junit.*; /** * Performs simple tests on Charles Forster's XQJ client implementation for BaseX. * * @author BaseX Team 2005-17, BSD License * @author Christian Gruen */ public final class XQJTest extends SandboxTest { /** Server reference. */ private static BaseXServer server; /** * Starts the tests. * @throws IOException I/O exception */ @BeforeClass public static void before() throws IOException { server = createServer(); } /** * Finishes the tests. * @throws Exception exception */ @AfterClass public static void after() throws Exception { stopServer(server); } /** * Simple query. * @throws Exception exception */ @Test public void basicTest() throws Exception { final XQDataSource xqds = new BaseXXQDataSource(); xqds.setProperty("serverName", "localhost"); xqds.setProperty("port", String.valueOf(DB_PORT)); final XQConnection conn = xqds.getConnection("admin", "admin"); try { final XQPreparedExpression xqpe = conn.prepareExpression("declare variable $x as xs:string external; $x"); xqpe.bindString(new QName("x"), "Hello World!", null); final XQResultSequence rs = xqpe.executeQuery(); assertTrue(rs.next()); assertEquals(rs.getItemAsString(null), "Hello World!"); } finally { conn.close(); } } /** * Simple query. * @throws Exception exception */ @Test public void entityTest() throws Exception { final XQDataSource xqds = new BaseXXQDataSource(); xqds.setProperty("serverName", "localhost"); xqds.setProperty("port", String.valueOf(DB_PORT)); final XQConnection conn = xqds.getConnection("admin", "admin"); try { final XQPreparedExpression xqpe = conn.prepareExpression("declare variable $x as xs:string external; $x"); xqpe.bindString(new QName("x"), "&", null); final XQResultSequence rs = xqpe.executeQuery(); assertTrue(rs.next()); assertEquals(rs.getItemAsString(null), "&"); } finally { conn.close(); } } }