// Copyright © 2011-2014, Esko Luontola <www.orfjackal.net>
// This software is released under the Apache License 2.0.
// The license text is at http://www.apache.org/licenses/LICENSE-2.0
package fi.jumi.core.ipc.dirs;
import org.junit.*;
import org.junit.rules.TemporaryFolder;
import java.io.IOException;
import java.nio.file.Path;
import static com.thewonggei.regexTester.hamcrest.RegexMatches.doesMatchRegex;
import static org.hamcrest.MatcherAssert.assertThat;
public class DaemonDirTest {
@Rule
public final TemporaryFolder tempDir = new TemporaryFolder();
private Path baseDir;
private DaemonDir daemonDir;
@Before
public void setup() {
baseDir = tempDir.getRoot().toPath();
daemonDir = new DaemonDir(baseDir);
}
@Test
public void creates_command_directories() throws IOException {
CommandDir dir = daemonDir.createCommandDir();
assertThat("command dir", relativeToBaseDir(dir.getPath()), doesMatchRegex("commands/\\d+"));
assertThat("request file", relativeToBaseDir(dir.getRequestPath()), doesMatchRegex("commands/\\d+/request"));
assertThat("response file", relativeToBaseDir(dir.getResponsePath()), doesMatchRegex("commands/\\d+/response"));
}
@Test
public void creates_suite_directories() throws IOException {
SuiteDir dir = daemonDir.createSuiteDir();
assertThat("suite dir", relativeToBaseDir(dir.getPath()), doesMatchRegex("suites/\\d+"));
assertThat("suite results file", relativeToBaseDir(dir.getSuiteResultsPath()), doesMatchRegex("suites/\\d+/suite"));
}
private String relativeToBaseDir(Path path) {
return normalized(baseDir.relativize(path));
}
private static String normalized(Path path) {
return path.toString().replace('\\', '/');
}
}