package de.uniba.dsg.bpmnspector.schematron.artifacts.sequenzflow; import api.Violation; /** * Test class for testing Constraint EXT.007 * * @author Philipp Neugebauer * @version 1.0 * */ public class Ext007 extends AbstractArtifactSequenceFlowTest { private final static String ERRORMESSAGEONE = "An Artifact MUST NOT be a source for a Sequence Flow"; private final static String ERRORMESSAGETWO = "For a Process: Of the types of FlowNode, only Activities, Gateways, and Events can be the source. However, Activities that are Event SubProcesses are not allowed to be a source"; private final static String ERRORMESSAGETHREE = "The source element of the sequence flow must reference the SequenceFlow definition using their outgoing attribute."; private final static String XPATHSTRING = "//bpmn:sequenceFlow[@sourceRef][0]"; @Override protected void assertFirstViolation(Violation v, String fileName) { assertViolation(v, ERRORMESSAGEONE, fileName, XPATHSTRING, 7); } @Override protected void assertSecondViolation(Violation v, String fileName, int line) { assertViolation(v, ERRORMESSAGETWO, fileName, "//bpmn:*[./@id = //bpmn:sequenceFlow/@sourceRef and ancestor::bpmn:process][0]", line); } @Override protected void assertThirdViolation(Violation v, String fileName) { assertViolation(v, ERRORMESSAGETHREE, fileName, XPATHSTRING, 7); } @Override protected String getExtNumber() { return "007"; } }