package com.camunda.consulting.dmn_in_out; import org.apache.ibatis.logging.LogFactory; import org.camunda.bpm.engine.runtime.ProcessInstance; import org.camunda.bpm.engine.test.ProcessEngineRule; import org.camunda.bpm.engine.test.mock.Mocks; import org.camunda.bpm.extension.process_test_coverage.junit.rules.TestCoverageProcessEngineRuleBuilder; import org.camunda.bpm.engine.test.Deployment; import org.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.*; import static org.junit.Assert.*; import java.util.Arrays; /** * Test case starting an in-memory database-backed Process Engine. */ public class InMemoryH2Test { @ClassRule @Rule public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().build(); private static final String PROCESS_DEFINITION_KEY = "dmn-in-out"; static { LogFactory.useSlf4jLogging(); // MyBatis } @Before public void setup() { init(rule.getProcessEngine()); } /** * Just tests if the process definition is deployable. */ @Test @Deployment(resources = {"pipeline.bpmn", "buildPipeline.dmn"}) public void testParsingAndDeployment() { // nothing is done here, as we just want to check for exceptions during deployment } @Test @Deployment(resources = {"pipeline.bpmn", "buildPipeline.dmn"}) public void testHappyPath() { Mocks.register("logger", new LoggerDelegate()); ProcessInstance processInstance = runtimeService().startProcessInstanceByKey("TestBuildPipeline"); // Now: Drive the process by API and assert correct behavior by camunda-bpm-assert assertThat(processInstance).isWaitingAt("DevSelectArtifacts"); complete(task(), withVariables("branchType", "RELEASE", "schemaType", "egal", "project", "egal", "additionalArtifacts", false)); assertThat(processInstance).isWaitingAt("CreateBranch"); execute(job()); assertThat(processInstance).hasPassed("CreateOptionalArtifacts").variables().contains(entry("dmn_output", Arrays.asList("RELEASE", "CI", "SONAR", "DEPLOY"))); } }