package com.camunda.training; import static org.camunda.bpm.engine.test.assertions.ProcessEngineTests.*; import static org.assertj.core.api.Assertions.*; import org.camunda.bpm.engine.runtime.ProcessInstance; import org.camunda.bpm.engine.test.Deployment; 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.junit.Before; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; public class ProcessJUnitTest2 { @Rule @ClassRule //public ProcessEngineRule rule = new ProcessEngineRule(); public static ProcessEngineRule rule = TestCoverageProcessEngineRuleBuilder.create().build(); @Before public void setup() { init(rule.getProcessEngine()); } @Test @Deployment(resources = "twitter-qa.bpmn") public void testHappyPath() { Mocks.register("createTweetDelegate", new LoggerDelegate()); // Start process with Java API and variables identityService().setAuthenticatedUserId("John"); ProcessInstance processInstance = runtimeService().startProcessInstanceByKey("TwitterQAProcess"); // Make assertions on the process instance assertThat(processInstance).isWaitingAt(findId("Write message")).task().isAssignedTo("John"); complete(task(), withVariables("content", "I did it from JUnit test, Cheers, Ingo")); assertThat(processInstance).isWaitingAt(findId("Validate message")).task().hasCandidateGroup("management"); complete(task(), withVariables("approved", true)); assertThat(processInstance).isWaitingAt(findId("Publish message")); execute(job()); assertThat(processInstance).isEnded(); } }