package org.basex.build; import static org.junit.Assert.*; import org.basex.*; import org.basex.core.cmd.*; import org.junit.*; import org.junit.Test; /** * Tests queries on collections. * * @author BaseX Team 2005-17, BSD License * @author Michael Seiferle */ public final class CollectionPathTest extends SandboxTest { /** Test files directory. */ private static final String DIR = "src/test/resources/"; /** Test files. */ private static final String[] FILES = { DIR + "input.xml", DIR + "xmark.xml", DIR + "test.xml" }; /** Test ZIP. */ private static final String ZIP = DIR + "xml.zip"; /** * Creates an initial database. */ @BeforeClass public static void before() { execute(new CreateDB(NAME)); for(final String file : FILES) execute(new Add(DIR, file)); execute(new Add("test/zipped", ZIP)); } /** * Drops the initial collection. */ @AfterClass public static void after() { execute(new DropDB(NAME)); } /** * Finds single doc. */ @Test public void findDoc() { assertEquals("1", query( "count(for $x in collection('" + NAME + '/' + DIR + "xmark.xml') " + "where $x//location contains text 'uzbekistan' " + "return $x)")); } /** * Finds documents in path. */ @Test public void findDocs() { assertEquals("4", query("count(collection('" + NAME + "/test/zipped'))")); } /** * Checks if the constructed base-uri matches the base-uri of added documents. */ @Test public void baseUri() { assertEquals('/' + NAME + '/' + FILES[1], query("base-uri(collection('" + NAME + '/' + DIR + "xmark.xml'))")); } }