package org.basex.build;
import static org.junit.Assert.*;
import org.basex.*;
import org.basex.core.*;
import org.basex.core.cmd.*;
import org.basex.io.*;
import org.basex.query.func.*;
import org.basex.util.*;
import org.basex.util.list.*;
import org.junit.*;
import org.junit.Test;
/**
* Tests for the {@link MainOptions#ADDRAW} option.
* @author BaseX Team 2005-17, BSD License
* @author Dimitar Popov
*/
public final class AddRawOptionTest extends SandboxTest {
/** Test directory. */
private static final String DIR = "src/test/resources/dir";
/** Test files from {@link AddRawOptionTest#DIR}}. */
private static final IOFile[] FILES = new IOFile(DIR).children();
/**
* Class set up method.
*/
@BeforeClass
public static void classSetUp() {
set(MainOptions.ADDRAW, true);
}
/**
* Set up method.
*/
@Before
public void setUp() {
execute(new CreateDB(NAME));
}
/**
* Test if raw files are added on executing a {@code CREATE} command.
*/
@Test
public void testCreate() {
execute(new CreateDB(NAME, DIR));
assertAllFilesExist();
}
/**
* Test if raw files are added on executing an {@code ADD} command.
*/
@Test
public void testAdd() {
execute(new Add("", DIR));
assertAllFilesExist();
}
/**
* Check if all files and only they exist in the database.
*/
private static void assertAllFilesExist() {
final StringList files = new StringList(query(Function._DB_LIST.args(NAME)).split(Prop.NL));
assertFalse("No files were imported", files.isEmpty());
for(final IOFile f : FILES) {
final String fname = f.name();
assertTrue("File " + fname + " is not imported", files.contains(fname));
}
assertEquals("Expected number of imported files is different", FILES.length, files.size());
}
}