package de.uniba.dsg.bpmnspector.api.tests; import api.*; import de.uniba.dsg.bpmnspector.BPMNspector; import org.junit.Test; import java.nio.file.Path; import java.nio.file.Paths; import java.util.LinkedList; import java.util.List; import static org.junit.Assert.*; /** * @author Matthias Geiger */ public class ValidationResultTests { private final Path path = Paths.get(System.getProperty("user.dir")).resolve("src").resolve("test").resolve("resources").resolve("036").resolve("fail_call_choreography.bpmn"); private final Validator validator; public ValidationResultTests() throws ValidationException { validator = new BPMNspector(); } @Test public void testEmptyUnsortedValidationResult() { testEmptyValidationResult(new UnsortedValidationResult()); } @Test public void testEmptySimpleValidationResult() { testEmptyValidationResult(new UnsortedValidationResult()); } private void testEmptyValidationResult(ValidationResult result) { assertTrue(result.isValid()); assertEquals(0, result.getViolations().size()); assertEquals(0, result.getViolatedConstraints().size()); assertEquals(0, result.getWarnings().size()); assertEquals(0, result.getFoundFiles().size()); assertEquals(0, result.getFilesWithViolations().size()); } @Test public void testUnsortedValidationResult() throws ValidationException{ ValidationResult result = validator.validate(path); testValidationResult(result); assertEquals("EXT.021", result.getViolations().get(2).getConstraint()); } @Test public void testSimpleValidationResult() throws ValidationException{ ValidationResult result = validator.validate(path); ValidationResult sorted = new SimpleValidationResult(); sorted.addFile(result.getFoundFiles().get(0)); result.getViolations().stream().forEach(sorted::addViolation); assertEquals(result.getViolations().get(2), sorted.getViolations().get(0)); testValidationResult(sorted); } private void testValidationResult(ValidationResult result) { assertFalse(result.isValid()); assertEquals(result.getFoundFiles().size(), 1); assertEquals(result.getFoundFiles().get(0), path); assertEquals(result.getFilesWithViolations().size(), 1); assertEquals(result.getFilesWithViolations().get(0), path); assertEquals(result.getViolations().size(), 5); List<String> expectedConstraints = new LinkedList<>(); expectedConstraints.add("EXT.021"); expectedConstraints.add("EXT.022"); expectedConstraints.add("EXT.036"); expectedConstraints.add("REF_TYPE"); assertEquals(result.getViolatedConstraints(), expectedConstraints); } @Test public void testSimpleValidationResultWithWarning() { ValidationResult result = new SimpleValidationResult(); String warn1Msg = "1-sample warning"; String warn2Msg = "2-sample warning"; result.addWarning(new Warning(warn2Msg, new Location(Paths.get("dummy path"), LocationCoordinate.EMPTY))); result.addWarning(new Warning(warn1Msg, new Location(Paths.get("dummy path"), LocationCoordinate.EMPTY))); assertTrue(result.isValid()); assertEquals(result.getWarnings().size(), 2); assertEquals(result.getWarnings().get(0).getMessage(), warn1Msg); assertEquals(result.getWarnings().get(0).getLocation().getLocation(), LocationCoordinate.EMPTY); assertEquals(result.getWarnings().get(1).getMessage(), warn2Msg); } }