package com.plectix.simulator.harness;
import java.io.File;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(value = Parameterized.class)
// TODO rename it somehow but RunAllFile_ISSUES_ENG_110 =)
public class RunTest {
private static final String separator = File.separator;
private static final String allPath = "test.data" + separator + "file_110"
+ separator;
private static final String pathForSourseFile = allPath + "all" + separator;
private static final String pathForResults = allPath + "results"
+ separator;
private static final String suffixFiles = ".ka";
private SimulatorTest sim;
@Parameters
public static Collection<Object[]> configs() {
List<Object[]> listFile = new LinkedList<Object[]>();
try {
File testFolder = new File(pathForSourseFile);
getDirectory(testFolder, listFile);
} catch (Exception e) {
e.printStackTrace();
org.junit.Assert.fail("Cannot instantiate fileName parameters");
}
return listFile;
}
private static void getDirectory(File testFolder, List<Object[]> listFile) {
File[] listFiles = testFolder.listFiles();
for (File folders : listFiles) {
if (folders.isDirectory()) {
getDirectory(folders, listFile);
}
if (folders.isFile()) {
String fileName = folders.getName();
if (checkFile(fileName)) {
listFile.add(new Object[] { folders.getPath() });
}
}
}
}
private static boolean checkFile(String fileName) {
return fileName.endsWith(suffixFiles);
}
private String getFileName(String path) {
File file = new File(path);
String fileName = file.getName();
fileName = fileName.substring(0, (fileName.length() - suffixFiles
.length()));
return fileName;
}
public RunTest(String path) {
String fileName = getFileName(path);
sim = new SimulatorTest(path, pathForResults, fileName);
}
@Test
public void testStartSimulator() throws InterruptedException {
sim.start();
sim.join();
}
}