Skip to content

Commit

Permalink
Add more refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
lukfor committed Aug 31, 2023
1 parent cd2a112 commit 8e3fc42
Show file tree
Hide file tree
Showing 11 changed files with 117 additions and 105 deletions.
54 changes: 39 additions & 15 deletions src/main/java/com/askimed/nf/test/core/AbstractTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,30 @@

public abstract class AbstractTest implements ITest {

public static final String FILE_STD_ERR = "std.err";

public static final String FILE_STD_OUT = "std.out";

public static final String FILE_TRACE = "trace.csv";

public static final String FILE_NEXTFLOW_LOG = "nextflow.log";

public static final String FILE_MOCK = "mock.nf";

public static final String FILE_PARAMS = "params.json";

public static final String FILE_WORKFLOW_JSON = "workflow.json";

public static final String FILE_FUNCTION_JSON = "function.json";

public static final String DIRECTORY_WORK = "work";

public static final String DIRECTORY_OUTPUT = "output";

public static final String DIRECTORY_META = "meta";

public static final String DIRECTORY_TESTS = "tests";

public File launchDir;

public File metaDir;
Expand All @@ -20,9 +44,9 @@ public abstract class AbstractTest implements ITest {

public File workDir;

public String baseDir = System.getProperty("user.dir");
public File baseDir = new File(System.getProperty("user.dir"));

public String projectDir = System.getProperty("user.dir");
public File projectDir = new File(System.getProperty("user.dir"));

public boolean skipped = false;

Expand Down Expand Up @@ -56,17 +80,12 @@ public File getConfig() {
}

@Override
public void setup(String testDirectory) throws IOException {
public void setup(File testDirectory) throws IOException {

launchDir = new File(FileUtil.path(testDirectory, "tests", getHash()));
metaDir = new File(FileUtil.path(launchDir.getAbsolutePath(), "meta"));
outputDir = new File(FileUtil.path(launchDir.getAbsolutePath(), "output"));
workDir = new File(FileUtil.path(launchDir.getAbsolutePath(), "work"));

initDirectory("Launch Directory", launchDir);
initDirectory("Meta Directory", metaDir);
initDirectory("Output Directory", outputDir);
initDirectory("Working Directory", workDir);
launchDir = initDirectory("Launch Directory", testDirectory, DIRECTORY_TESTS, getHash());
metaDir = initDirectory("Meta Directory", launchDir, DIRECTORY_META);
outputDir = initDirectory("Output Directory", launchDir, DIRECTORY_OUTPUT);
workDir = initDirectory("Working Directory", launchDir, DIRECTORY_WORK);

try {
// copy bin and lib to metaDir. TODO: use symlinks and read additional "mapping"
Expand All @@ -78,10 +97,15 @@ public void setup(String testDirectory) throws IOException {

}

public void initDirectory(String name, File directory) throws IOException {
public File initDirectory(String name, File root, String... childs) throws IOException {

String path = FileUtil.path(root.getAbsolutePath(), FileUtil.path(childs));

File directory = new File(path).getAbsoluteFile();
try {
FileUtil.deleteDirectory(directory);
FileUtil.createDirectory(directory);
return directory;
} catch (Exception e) {
throw new IOException(name + " '" + directory + "' could not be deleted or created:\n" + e);
}
Expand All @@ -96,11 +120,11 @@ public void cleanup() {
@Override
public String getErrorReport() throws Throwable {
String result = null;
File outFile = new File(metaDir, "std.out");
File outFile = new File(metaDir, FILE_STD_OUT);
if (outFile.exists()) {
result = "Nextflow stdout:\n\n" + FileUtil.readFileAsString(outFile);
}
File errFile = new File(metaDir, "std.err");
File errFile = new File(metaDir, FILE_STD_ERR);
if (errFile.exists()) {
if (result == null) {
result = "";
Expand Down
18 changes: 9 additions & 9 deletions src/main/java/com/askimed/nf/test/core/AbstractTestSuite.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@ public abstract class AbstractTestSuite implements ITestSuite {
private boolean autoSort = true;

private String options = "";

private String directory = "";
private String homeDirectory = Config.DEFAULT_HOME;

private File homeDirectory = new File(Config.DEFAULT_HOME);

private List<String> tags = new Vector<String>();

@Override
public void configure(Config config) {
autoSort = config.isAutoSort();
options = config.getOptions();
homeDirectory = config.getWorkDir();
homeDirectory = new File(config.getWorkDir());
}

public void name(String name) {
Expand Down Expand Up @@ -97,8 +97,8 @@ public void setLocalConfig(File localConfig) {
public File getLocalConfig() {
return localConfig;
}
public String getHomeDirectory() {

public File getHomeDirectory() {
return homeDirectory;
}

Expand All @@ -117,7 +117,7 @@ public String getFilename() {
public String getDirectory() {
return directory;
}

@Override
public List<ITest> getTests() {
return tests;
Expand All @@ -144,9 +144,9 @@ public ITaggable getParent() {
protected String makeAbsolute(String path) {
return new File(directory, path).getAbsolutePath();
}

protected boolean isRelative(String path) {
return path.startsWith("../") || path.startsWith("./");
}

}
4 changes: 3 additions & 1 deletion src/main/java/com/askimed/nf/test/core/ITest.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.askimed.nf.test.core;

import java.io.File;

public interface ITest extends ITaggable {

public void setup(String homeDirectory) throws Throwable;
public void setup(File homeDirectory) throws Throwable;

public void execute() throws Throwable;

Expand Down
50 changes: 21 additions & 29 deletions src/main/java/com/askimed/nf/test/lang/ParamsMap.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,47 +20,39 @@ public class ParamsMap extends HashMap<String, Object> {

private static final long serialVersionUID = 1L;

public String baseDir = "";
public String baseDir;

public String outputDir = "";
public String outputDir;

public String projectDir = "";
public String projectDir;

public String launchDir = "";
public String launchDir;

public String workDir = "";
public String workDir;

public void setBaseDir(String baseDir) {
this.baseDir = baseDir;
put("baseDir", baseDir);
public void setBaseDir(File baseDir) {
this.baseDir = baseDir.getAbsolutePath();
put("baseDir", this.baseDir);
}

public void setOutputDir(String outputDir) {
this.outputDir = outputDir;
put("outputDir", outputDir);
public void setOutputDir(File outputDir) {
this.outputDir = outputDir.getAbsolutePath();
put("outputDir", this.outputDir);
}

public String getBaseDir() {
return baseDir;
public void setProjectDir(File projectDir) {
this.projectDir = projectDir.getAbsolutePath();
put("projectDir", this.projectDir);
}

public String getOutputDir() {
return outputDir;
public void setLaunchDir(File launchDir) {
this.launchDir = launchDir.getAbsolutePath();
put("launchDir", this.launchDir);
}

public void setProjectDir(String projectDir) {
this.projectDir = projectDir;
put("projectDir", projectDir);
}

public void setLaunchDir(String launchDir) {
this.launchDir = launchDir;
put("launchDir", launchDir);
}

public void setWorkDir(String workDir) {
this.workDir = workDir;
put("workDir", workDir);
public void setWorkDir(File workDir) {
this.workDir = workDir.getAbsolutePath();
put("workDir", this.workDir);
}

public void load(String filename) throws CompilationFailedException, ClassNotFoundException, IOException {
Expand Down Expand Up @@ -199,7 +191,7 @@ protected Map<String, Object> createNestedMap(Map<String, Object> map) {
nestedMap.put("outputDir", outputDir);
nestedMap.put("projectDir", projectDir);
nestedMap.put("launchDir", launchDir);
nestedMap.put("workDir", workDir);
nestedMap.put("workDir", workDir);
if (map != null) {
nestedMap.putAll(map);
}
Expand Down
23 changes: 12 additions & 11 deletions src/main/java/com/askimed/nf/test/lang/TestContext.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.askimed.nf.test.lang;

import java.io.File;
import java.io.IOException;

import org.codehaus.groovy.control.CompilationFailedException;
Expand All @@ -17,15 +18,15 @@ public class TestContext {

private Closure paramsClosure;

public String baseDir = "";
public File baseDir;

public String projectDir = "";
public File projectDir;

public String launchDir = "";
public File launchDir;

public String workDir = "";
public File workDir;

public String outputDir = "";
public File outputDir;

public ITest test;

Expand All @@ -40,15 +41,15 @@ public TestContext(ITest test) {
public void init(AbstractTest test) {
params.setBaseDir(test.baseDir);
params.setProjectDir(test.baseDir);
params.setLaunchDir(test.launchDir.getAbsolutePath());
params.setWorkDir(test.workDir.getAbsolutePath());
params.setOutputDir(test.outputDir.getAbsolutePath());
params.setLaunchDir(test.launchDir);
params.setWorkDir(test.workDir);
params.setOutputDir(test.outputDir);

this.baseDir = test.baseDir;
this.projectDir = test.baseDir;
this.launchDir = test.launchDir.getAbsolutePath();
this.workDir = test.workDir.getAbsolutePath();
this.outputDir = test.outputDir.getAbsolutePath();
this.launchDir = test.launchDir;
this.workDir = test.workDir;
this.outputDir = test.outputDir;
}

public ParamsMap getParams() {
Expand Down
20 changes: 6 additions & 14 deletions src/main/java/com/askimed/nf/test/lang/WorkflowMeta.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
package com.askimed.nf.test.lang;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Files;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import com.opencsv.exceptions.CsvValidationException;
import com.askimed.nf.test.core.AbstractTest;

import groovy.json.JsonSlurper;

Expand All @@ -34,7 +33,7 @@ public class WorkflowMeta {

public void loadFromFolder(File folder) {

File file = new File(folder, "workflow.json");
File file = new File(folder, AbstractTest.FILE_WORKFLOW_JSON);

if (file.exists()) {
JsonSlurper jsonSlurper = new JsonSlurper();
Expand All @@ -46,7 +45,7 @@ public void loadFromFolder(File folder) {
this.errorReport = getString(map, "errorReport");
}

File outFile = new File(folder, "std.out");
File outFile = new File(folder, AbstractTest.FILE_STD_OUT);
if (outFile.exists()) {
try {
stdout = Files.readAllLines(outFile.toPath());
Expand All @@ -55,7 +54,7 @@ public void loadFromFolder(File folder) {
}
}

File outFileStdErr = new File(folder, "std.err");
File outFileStdErr = new File(folder, AbstractTest.FILE_STD_ERR);
if (outFileStdErr.exists()) {
try {
stderr = Files.readAllLines(outFileStdErr.toPath());
Expand All @@ -64,18 +63,11 @@ public void loadFromFolder(File folder) {
}
}

File traceFile = new File(folder, "trace.csv");
File traceFile = new File(folder, AbstractTest.FILE_TRACE);
if (traceFile.exists()) {
try {
trace = new WorkflowTrace(traceFile);
} catch (CsvValidationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
} catch (Exception e) {
e.printStackTrace();
}
}
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/com/askimed/nf/test/lang/function/Function.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import java.io.File;

import com.askimed.nf.test.core.AbstractTest;
import com.askimed.nf.test.lang.WorkflowMeta;

import groovy.json.JsonSlurper;
Expand Down Expand Up @@ -40,13 +41,13 @@ public String toString() {
}

public void loadResult(File folder) {
File file = new File(folder, "function.json");
File file = new File(folder, AbstractTest.FILE_FUNCTION_JSON);

if (file.exists()) {
JsonSlurper jsonSlurper = new JsonSlurper();
result = jsonSlurper.parse(file);
}

}

}
Loading

0 comments on commit 8e3fc42

Please sign in to comment.