package org.jcodec.containers.mkv;
import org.jcodec.Utils;
import org.jcodec.common.io.IOUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Properties;
public class MKVTestSuite {
public final File test1;
public final File test2;
public final File test3;
public final File test4;
public final File test5;
public final File test6;
public final File test7;
public final File test8;
public final File base;
public MKVTestSuite(File dir) {
base = dir;
test1 = new File(dir, "test1.mkv");
test2 = new File(dir, "test2.mkv");
test3 = new File(dir, "test3.mkv");
test4 = new File(dir, "test4.mkv");
test5 = new File(dir, "test5.mkv");
test6 = new File(dir, "test6.mkv");
test7 = new File(dir, "test7.mkv");
test8 = new File(dir, "test8.mkv");
}
public boolean isSuitePresent() {
return test1.exists() && test2.exists() && test3.exists() && test4.exists() && test5.exists() && test6.exists() && test7.exists() && test8.exists();
}
public File[] allTests(){
return new File[]{test1, test2, test3, test4, test5, test6, test7, test8};
}
public static Properties loadProperties(File file) throws IOException {
Reader reader = null;
try {
Properties props = new Properties();
if (file.exists()) {
reader = new BufferedReader(new FileReader(file));
props.load(reader);
}
return props;
} finally {
IOUtils.closeQuietly(reader);
}
}
public static MKVTestSuite read() throws IOException {
return readFile(new File("./src/test/resources/mkv/suite.properties"));
}
public static MKVTestSuite readFile(File f) throws IOException {
if (!f.exists())
throw new RuntimeException(f.getAbsolutePath() + " doesn't exists");
Properties props = loadProperties(f);
String path = props.getProperty("mkv.test.suite.path");
File dir = Utils.tildeExpand(path);
return new MKVTestSuite(dir);
}
}