package peal.impl;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import betsy.common.tasks.FileTasks;
import betsy.common.util.IOCapture;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import peal.identifier.EngineId;
import peal.impl.engine.EngineServiceImpl;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public abstract class AbstractEngineServiceCleanup {
public abstract EngineId getEngineId();
@Before
public void truncateServerPathFolder() {
IOCapture.captureIO(
() -> {
try {
FileTasks.deleteDirectory(Paths.get("test"));
} catch (Exception ignored) {
}
new EngineServiceImpl().getSupportedEngines().forEach((e) -> {
try {
FileTasks.deleteDirectory(Paths.get("test-" + e.getEngineId()));
} catch (Exception ignored) {
}
});
Path serverPath = Paths.get("server");
try {
FileTasks.deleteDirectory(serverPath);
} catch (Exception ignored) {
}
assertFalse(Files.isDirectory(serverPath));
FileTasks.mkdirs(serverPath);
assertTrue(Files.isDirectory(serverPath));
System.out.println("\n\nPREPARATION DONE\n");
}
);
}
@BeforeClass
public static void ensureEnginesAreShutdown() {
IOCapture.captureIO(
() -> {
new EngineServiceImpl().getSupportedEngines().forEach((e) -> {
try {
new EngineServiceImpl().stop(e);
} catch (Exception ignored) {
// ignore
}
});
}
);
}
@After
public void ensureEngineIsShutdown() {
IOCapture.captureIO(
() -> {
System.out.println("\n\nSHUTTING DOWN AFTER TEST\n");
try {
new EngineServiceImpl().stop(getEngineId());
} catch (Exception ignored) {
// ignore
}
}
);
}
}