package org.exist.xquery.functions.fn;
import org.exist.test.ExistXmldbEmbeddedServer;
import org.junit.ClassRule;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import org.xmldb.api.base.ResourceSet;
import org.xmldb.api.base.XMLDBException;
/**
*
* @author aretter
*/
public class FunNumberTest {
@ClassRule
public static final ExistXmldbEmbeddedServer existEmbeddedServer = new ExistXmldbEmbeddedServer(false, true);
@Test
public void testFnNumberWithContext() throws XMLDBException {
final ResourceSet resourceSet = existEmbeddedServer.executeQuery(
"let $errors := " +
"<report>" +
"<message level=\"Error\" line=\"1191\" column=\"49\" repeat=\"96\"></message>" +
"<message level=\"Error\" line=\"161740\" column=\"25\"></message>" +
"<message level=\"Error\" line=\"162327\" column=\"92\" repeat=\"87\"></message>" +
"<message level=\"Error\" line=\"255090\" column=\"25\">c</message>" +
"<message level=\"Error\" line=\"255702\" column=\"414\" repeat=\"9\"></message>" +
"</report>" +
"return sum($errors//message/(@repeat/number(),1)[1])"
);
assertEquals(1, resourceSet.getSize());
assertEquals("194", resourceSet.getResource(0).getContent());
}
@Test
public void testFnNumberWithArgument() throws XMLDBException {
final ResourceSet resourceSet = existEmbeddedServer.executeQuery(
"let $errors := " +
"<report>" +
"<message level=\"Error\" line=\"1191\" column=\"49\" repeat=\"96\"></message>" +
"<message level=\"Error\" line=\"161740\" column=\"25\"></message>" +
"<message level=\"Error\" line=\"162327\" column=\"92\" repeat=\"87\"></message>" +
"<message level=\"Error\" line=\"255090\" column=\"25\">c</message>" +
"<message level=\"Error\" line=\"255702\" column=\"414\" repeat=\"9\"></message>" +
"</report>" +
"return sum($errors//message/(number(@repeat),1)[1])"
);
assertEquals(1, resourceSet.getSize());
assertEquals("NaN", resourceSet.getResource(0).getContent());
}
}