package com.occamlab.te;
import static org.junit.Assert.assertFalse;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
import javax.xml.parsers.ParserConfigurationException;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.xml.sax.SAXException;
public class SetupOptionsTest {
static String TE_BASE = "TE_BASE";
static File baseDir;
static boolean createdDir;
static String prevTEBase;
@BeforeClass
public static void setSystemProperty() {
baseDir = new File(System.getProperty("user.home"), UUID.randomUUID().toString());
createdDir = baseDir.mkdir();
prevTEBase = System.setProperty(TE_BASE, baseDir.getAbsolutePath());
}
@AfterClass
public static void restoreSystemProperty() {
if (createdDir) {
File dir = new File(System.getProperty(TE_BASE));
File[] children = dir.listFiles();
for (int i = 0; i < children.length; i++) {
children[i].delete();
}
dir.delete();
}
if (null != prevTEBase) {
System.setProperty(TE_BASE, prevTEBase);
} else {
System.clearProperty(TE_BASE);
}
System.clearProperty("Record");
}
@Test
public void getBaseDir() {
File baseDir = SetupOptions.getBaseConfigDirectory();
Assert.assertNotNull("File reference is null.", baseDir);
Assert.assertTrue("Expected a directory at " + baseDir.getAbsolutePath(), baseDir.isDirectory());
}
@Test
public void getWorkDir() {
SetupOptions iut = new SetupOptions();
File workDir = iut.getWorkDir();
Assert.assertTrue("Expected a directory at " + workDir.getAbsolutePath(), workDir.isDirectory());
}
@Test
public void getScriptSources() {
SetupOptions iut = new SetupOptions();
List<File> sources = iut.getSources();
Assert.assertEquals("Unexpected size", 0, sources.size());
}
@Test
public void testRecordingInfoWithoutConfig() throws ParserConfigurationException, SAXException, IOException {
File configFile = new File(baseDir, "config.xml");
assertFalse(configFile.exists());
assertFalse(SetupOptions.recordingInfo("foo"));
}
}