package org.exist.xquery.value; import org.exist.xmldb.DatabaseInstanceManager; import org.exist.xmldb.XmldbURI; import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import org.xmldb.api.DatabaseManager; import org.xmldb.api.base.Collection; import org.xmldb.api.base.Database; import org.xmldb.api.base.ResourceSet; import org.xmldb.api.base.XMLDBException; import org.xmldb.api.modules.XPathQueryService; /** * * @author aretter */ public class Base64BinaryTest { private XPathQueryService service; private Collection root = null; private Database database = null; @Test public void castToBase64ThenBackToString() throws XMLDBException { final String base64String = "QWxhZGRpbjpvcGVuIHNlc2FtZQ=="; final String query = "let $data := '" + base64String + "' cast as xs:base64Binary return $data cast as xs:string"; ResourceSet result = service.query(query); String queryResult = (String)result.getResource(0).getContent(); assertEquals(base64String, queryResult); } @Before public void setUp() throws Exception { // initialize driver Class<?> cl = Class.forName( "org.exist.xmldb.DatabaseImpl" ); database = (Database)cl.newInstance(); database.setProperty( "create-database", "true" ); DatabaseManager.registerDatabase(database); root = DatabaseManager.getCollection( XmldbURI.LOCAL_DB, "admin", "" ); service = (XPathQueryService)root.getService( "XQueryService", "1.0" ); } @After public void tearDown() throws Exception { DatabaseManager.deregisterDatabase( database ); DatabaseInstanceManager dim = (DatabaseInstanceManager)root.getService( "DatabaseInstanceManager", "1.0" ); dim.shutdown(); // clear instance variables service = null; root = null; } }