package mireka;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import mireka.transmission.queue.DirectoryListSpeedTest;
import org.junit.After;
import org.junit.Before;
public class TempDirectory {
protected File directory;
public TempDirectory() {
super();
}
@Before
public void createTestDirectory() {
String tempDirProperty = System.getProperty("java.io.tmpdir");
File tempDir = new File(tempDirProperty);
File dir;
boolean created = false;
do {
String dirName =
DirectoryListSpeedTest.class.getSimpleName() + "-"
+ Math.random();
dir = new File(tempDir, dirName);
created = dir.mkdir();
} while (!created);
directory = dir;
}
@After
public void deleteTestDirectory() {
for (File file : directory.listFiles()) {
file.delete();
}
directory.delete();
}
public String textFileContent(String relativePath) throws IOException {
File file = new File(directory, relativePath);
return textFileContent(file);
}
public static String textFileContent(File file) throws IOException {
long size = file.length();
InputStreamReader reader =
new InputStreamReader(new FileInputStream(file), "UTF-8");
char[] buffer = new char[(int) size];
try {
int count = reader.read(buffer);
return new String(buffer, 0, count);
} finally {
reader.close();
}
}
public void writeText(String relativePath, String text) throws IOException {
writeText(new File(directory, relativePath), text);
}
public static void writeText(File file, String text) throws IOException {
OutputStreamWriter writer =
new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
writer.write(text);
writer.close();
}
}