package org.omg.bpmn.miwg.mvn;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.Collection;
import java.util.HashSet;
import org.junit.Test;
import org.omg.bpmn.miwg.api.AnalysisJob;
import org.omg.bpmn.miwg.api.ReferenceNotFoundException;
import org.omg.bpmn.miwg.api.Variant;
import org.omg.bpmn.miwg.scan.BpmnFileScanner;
import org.omg.bpmn.miwg.scan.StandardScanParameters;
public class BpmnFileScannerTest {
@Test
public void testScanResourcesForAllBpmnFiles() throws IOException,
ReferenceNotFoundException {
Collection<AnalysisJob> jobs = BpmnFileScanner
.buildListOfAnalysisJobs(new StandardScanParameters(null, null,
"src/test/resources", null));
assertNotSame(0, jobs.size());
}
@Test
public void testScanResourcesForSpecificApplication() throws IOException,
ReferenceNotFoundException {
Collection<AnalysisJob> jobs;
jobs = BpmnFileScanner
.buildListOfAnalysisJobs(new StandardScanParameters(
TestConsts.W4_MODELER_ID, null, "src/test/resources",
null));
assertEquals(5, jobs.size());
jobs = BpmnFileScanner
.buildListOfAnalysisJobs(new StandardScanParameters(
TestConsts.BPMN_IO_ID, null, "src/test/resources", null));
assertEquals(1, jobs.size());
}
@Test
public void testInferMiwgVariant() {
File bpmnFile = new File("src" + File.separator + "test"
+ File.separator + "resources" + File.separator
+ TestConsts.W4_MODELER_ID + File.separator
+ "A.1.0-export.bpmn");
Variant variant = BpmnFileScanner.inferMiwgVariant(bpmnFile);
assertEquals(Variant.Export, variant);
}
@Test
public void testInferTestName() {
File bpmnFile = new File("src" + File.separator + "test"
+ File.separator + "resources" + File.separator
+ TestConsts.W4_MODELER_ID + File.separator
+ "A.1.0-export.bpmn");
String test = BpmnFileScanner.inferTestName(bpmnFile);
assertEquals("A.1.0", test);
}
@Test
public void testCurrent() throws IOException {
File f = new File(".");
System.err.println(f.getCanonicalPath());
}
private Collection<String> getAllApplicationsFromJobList(
Collection<AnalysisJob> jobs) {
Collection<String> applications = new HashSet<String>();
for (AnalysisJob job : jobs) {
applications.add(job.getFullApplicationName());
}
return applications;
}
@Test
public void testApplicationsParsing() throws IOException,
ReferenceNotFoundException {
Collection<AnalysisJob> jobs;
jobs = BpmnFileScanner
.buildListOfAnalysisJobs(new StandardScanParameters(
null, null, "src/test/resources",
null));
assertNotSame(0, jobs.size());
Collection<String> applications = getAllApplicationsFromJobList(jobs);
// The following tools are in src/test/resources
assertTrue(applications.contains(TestConsts.CAMUNDA_MODELER_ID));
assertTrue(applications.contains(TestConsts.W4_MODELER_ID));
// The following tools are not in src/test/resources
assertFalse(applications.contains(TestConsts.CAMUNDA_JS_ID));
assertFalse(applications.contains(TestConsts.ECLIPSE_MODELER_ID));
assertFalse(applications.contains(TestConsts.IBM_MODELER_ID));
assertFalse(applications.contains(TestConsts.MID_MODELER_ID));
assertFalse(applications.contains(TestConsts.SIGNAVIO_MODELER_ID));
assertFalse(applications.contains(TestConsts.YAOQIANG_2_MODELER_ID));
assertFalse(applications.contains(TestConsts.YAOQIANG_3_MODELER_ID));
}
}