package betsy.bpmn;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import betsy.bpmn.engines.AbstractBPMNEngine;
import betsy.bpmn.model.BPMNProcess;
import betsy.bpmn.model.BPMNTestSuite;
import betsy.bpmn.validation.BPMNValidator;
import pebl.benchmark.test.Test;
public class BPMNBetsy {
private String testFolderName;
private List<AbstractBPMNEngine> engines = new ArrayList<>();
private List<BPMNProcess> processes = new ArrayList<>();
private BPMNComposite composite = new BPMNComposite();
public void execute() {
Objects.requireNonNull(testFolderName, "test folder must be set");
new BPMNValidator().validate();
Collections.sort(processes);
BPMNTestSuite testSuite = BPMNTestSuite.createTests(engines, processes, testFolderName);
composite.setTestSuite(testSuite);
composite.execute();
}
public void setTestFolder(String testFolderName) {
this.testFolderName = testFolderName;
}
public List<AbstractBPMNEngine> getEngines() {
return engines;
}
public void setEngines(List<AbstractBPMNEngine> engines) {
this.engines = engines;
}
public List<BPMNProcess> getProcesses() {
return processes;
}
public void setProcesses(List<Test> processes) {
List<BPMNProcess> processList = new ArrayList<>();
for(Test test : processes) {
processList.add(new BPMNProcess(test));
}
this.processes = processList;
}
public BPMNComposite getComposite() {
return composite;
}
public void setComposite(BPMNComposite composite) {
this.composite = composite;
}
}