package de.uniba.dsg.bpmnspector.schematron.descriptive; import api.ValidationException; import api.ValidationResult; import api.Violation; import de.uniba.dsg.bpmnspector.schematron.TestCase; import org.junit.Test; /** * Test class for testing Constraint EXT.002 * * @author Philipp Neugebauer * @version 1.0 * */ public class Ext002 extends TestCase { private final static String ERRORMESSAGE = "Resources have id duplicates"; private final static String XPATHSTRING = "/*[local-name() = 'definitions' and namespace-uri() = 'http://www.omg.org/spec/BPMN/20100524/MODEL']/@id"; @Test public void testConstraintImport1Fail() throws ValidationException { ValidationResult result = verifyInvalidResult( createFile("fail_import.bpmn"), 10); assertViolation(result.getViolations().get(0), "fail_import.bpmn", 2); assertViolation(result.getViolations().get(1), "import.bpmn", 2); } @Test public void testConstraintImport2Fail() throws ValidationException { ValidationResult result = verifyInvalidResult( createFile("fail_import2.bpmn"), 10); assertViolation(result.getViolations().get(0), "import.bpmn", 2); assertViolation(result.getViolations().get(1), "import2.bpmn", 2); } @Test public void testConstraintImport3Fail() throws ValidationException { ValidationResult result = verifyInvalidResult( createFile("fail_import3.bpmn"), 20); assertViolation(result.getViolations().get(0), "fail_import3.bpmn", 2); assertViolation(result.getViolations().get(1), "fail_import2.bpmn", 2); } @Test public void testConstraintImportUrlFail() throws ValidationException { ValidationResult result = verifyInvalidResult(createFile("fail_import_URL.bpmn"), 10); assertViolation(result.getViolations().get(0), "fail_import_URL.bpmn", 2); assertURLViolation(result.getViolations().get(1), ERRORMESSAGE, "http://www.bpmnspector.org/import.bpmn", XPATHSTRING, 2); } @Test public void testConstraintSuccess() throws ValidationException { verifyValidResult(createFile("success_import.bpmn")); } @Test public void testConstraintSuccessUrl() throws ValidationException { verifyValidResult(createFile("success_import_URL.bpmn")); } @Override protected void assertViolation(Violation v, String fileName, int line) { assertViolation(v, ERRORMESSAGE, fileName, XPATHSTRING, line); } @Override protected String getExtNumber() { return "002"; } }