@Test public void testLogVariables() throws Exception { // Run a job with Activiti XML that will log variables. The XML will only log 1 of the 2 variables present in the test workflow. // Since we can't really test what got logged, we'll just ensure that no exceptions were thrown and that the job isn't null. Job job = jobServiceTestHelper.createJob(ACTIVITI_XML_LOG_VARIABLES_WITH_CLASSPATH); assertNotNull(job); }
/** * Creates job create request using a specified namespace code and job name, but test hard coded parameters will be used. * * @param namespaceCd the namespace code. * @param jobName the job definition name. * * @return the created job create request. */ public JobCreateRequest createJobCreateRequest(String namespaceCd, String jobName) { // Create a test list of parameters. List<Parameter> parameters = new ArrayList<>(); Parameter parameter = new Parameter(AbstractServiceTest.ATTRIBUTE_NAME_2_MIXED_CASE, AbstractServiceTest.ATTRIBUTE_VALUE_2); parameters.add(parameter); parameter = new Parameter("Extra Attribute With No Value", null); parameters.add(parameter); return createJobCreateRequest(namespaceCd, jobName, parameters); }
/** * Creates a job based on the specified Activiti XML classpath resource location and defines a EMR cluster definition. * * @param activitiXmlClasspathResourceName the Activiti XML classpath resource location. * @param parameters the job parameters. * * @return the job. * @throws Exception if any errors were encountered. */ public Job createJobForCreateCluster(String activitiXmlClasspathResourceName, List<Parameter> parameters) throws Exception { return createJobForCreateCluster(activitiXmlClasspathResourceName, parameters, null); }
.asList(jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME)), jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME)), jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME))); jobServiceTestHelper.setCurrentUserNamespaceAuthorizations(TEST_ACTIVITI_NAMESPACE_CD, Arrays.asList(NamespacePermissionEnum.READ));
private void createJobAndCheckStepStatusSuccess(String activitiXml, List<Parameter> parameters) throws Exception { Job job = jobServiceTestHelper.createJobForCreateClusterForActivitiXml(activitiXml, parameters); assertNotNull(job); HistoricProcessInstance hisInstance = activitiHistoryService.createHistoricProcessInstanceQuery().processInstanceId(job.getId()).includeProcessVariables().singleResult(); Map<String, Object> variables = hisInstance.getProcessVariables(); String addStepServiceTaskStatus = (String) variables.get("addStepServiceTask" + ActivitiRuntimeHelper.TASK_VARIABLE_MARKER + ActivitiRuntimeHelper.VARIABLE_STATUS); assertEquals(ActivitiRuntimeHelper.TASK_STATUS_SUCCESS, addStepServiceTaskStatus); String addStepId = (String) variables.get("addStepServiceTask" + ActivitiRuntimeHelper.TASK_VARIABLE_MARKER + BaseAddEmrStep.VARIABLE_EMR_STEP_ID); assertNotNull(addStepId); }
Job job = jobServiceTestHelper.createJobForCreateCluster(ACTIVITI_XML_CHECK_CLUSTER_AND_RECEIVE_TASK_WITH_CLASSPATH, parameters); assertNotNull(job); Map<String, Parameter> jobParameters = jobServiceTestHelper.toMap(signalJobResponse.getParameters()); assertTrue(jobParameters.containsKey("checkClusterServiceTask_emrClusterStatus_creationTime")); assertTrue(jobParameters.containsKey("checkClusterServiceTask_emrClusterStatus_readyTime"));
/** * This method tests the scenario where a RuntimeException occurs but not thrown by java delegate. */ @Test public void testDelegateRuntimeError() throws Exception { BpmnModel bpmnModel = getBpmnModelForXmlResource(ACTIVITI_XML_HERD_WORKFLOW); ServiceTask serviceTask = (ServiceTask) bpmnModel.getProcesses().get(0).getFlowElement("servicetask1"); serviceTask.setImplementation(MockJavaDelegate.class.getCanonicalName()); FieldExtension exceptionField = new FieldExtension(); exceptionField.setFieldName("exceptionToThrow"); exceptionField.setExpression("${exceptionToThrow}"); serviceTask.getFieldExtensions().clear(); serviceTask.getFieldExtensions().add(exceptionField); List<Parameter> parameters = new ArrayList<>(); Parameter parameter = new Parameter("exceptionToThrow", MockJavaDelegate.EXCEPTION_RUNTIME); parameters.add(parameter); executeWithoutLogging(Arrays.asList(ActivitiRuntimeHelper.class, BaseJavaDelegate.class), () -> { jobServiceTestHelper.createJobFromActivitiXml(getActivitiXmlFromBpmnModel(bpmnModel), parameters); }); }
.asList(jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME)), jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME)), jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME))); jobServiceTestHelper.setCurrentUserNamespaceAuthorizations(TEST_ACTIVITI_NAMESPACE_CD, Arrays.asList(NamespacePermissionEnum.READ));
private void createJobAndCheckStepStatusFailure(String activitiXml, List<Parameter> parameters) throws Exception { Job job = jobServiceTestHelper.createJobForCreateClusterForActivitiXml(activitiXml, parameters); assertNotNull(job); HistoricProcessInstance hisInstance = activitiHistoryService.createHistoricProcessInstanceQuery().processInstanceId(job.getId()).includeProcessVariables().singleResult(); Map<String, Object> variables = hisInstance.getProcessVariables(); String addStepServiceTaskStatus = (String) variables.get("addStepServiceTask" + ActivitiRuntimeHelper.TASK_VARIABLE_MARKER + ActivitiRuntimeHelper.VARIABLE_STATUS); assertEquals(ActivitiRuntimeHelper.TASK_STATUS_ERROR, addStepServiceTaskStatus); }
/** * This method tests when wrong class name is used in service task, the process instance is created. */ @Test public void testDelegateWrongClass() throws Exception { BpmnModel bpmnModel = getBpmnModelForXmlResource(ACTIVITI_XML_HERD_WORKFLOW); ServiceTask serviceTask = (ServiceTask) bpmnModel.getProcesses().get(0).getFlowElement("servicetask1"); serviceTask.setImplementation("ClassDoesNotExist"); serviceTask.getFieldExtensions().clear(); // Run a job with Activiti XML that will start cluster. try { jobServiceTestHelper.createJobFromActivitiXml(getActivitiXmlFromBpmnModel(bpmnModel), null); fail(); } catch (Exception e) { assertEquals(ActivitiException.class, e.getClass()); assertEquals("couldn't instantiate class ClassDoesNotExist", e.getMessage()); } } }
@Test(expected = IllegalArgumentException.class) public void testCreateJobJobNameEmpty() throws Exception { // Try to create a job by passing an empty job name. jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, " ")); }
Job job = jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME)); jobServiceTestHelper.setCurrentUserNamespaceAuthorizations(TEST_ACTIVITI_NAMESPACE_CD, Arrays.asList(NamespacePermissionEnum.READ));
Job job = jobServiceTestHelper.createJobForCreateClusterForActivitiXml(activitiXml, parameters); assertNotNull(job);
private Job createJobAndCheckTaskStatusFailure(String activitiXml, List<Parameter> parameters, Map<String, Object> variableValuesToValidate) throws Exception Job job = jobServiceTestHelper.createJobFromActivitiXml(activitiXml, parameters); assertNotNull(job);
/** * This method tests the scenario where any other exception other than BpmnError is not re-thrown. */ @Test public void testDelegateCallExceptionNotThrown() throws Exception { List<Parameter> parameters = new ArrayList<>(); executeWithoutLogging(ActivitiRuntimeHelper.class, () -> { // Run a job with Activiti XML that will start cluster. // clusterName is not set as parameter, hence error will occur but will not be re-thrown jobServiceTestHelper.createJobForCreateCluster(ACTIVITI_XML_CREATE_CLUSTER_WITH_CLASSPATH, parameters); }); } }
@Test public void testLogVariablesDm() throws Exception { // This does the same thing as the testLogVariables test above, but uses a workflow that uses a deprecated service task. // This test can be removed once all deprecated service tasks are removed. Job job = jobServiceTestHelper.createJob(ACTIVITI_XML_LOG_VARIABLES_WITH_CLASSPATH_DM); assertNotNull(job); }
@Test(expected = IllegalArgumentException.class) public void testCreateJobNamespaceEmpty() throws Exception { // Try to create a job by passing an empty namespace code. jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(" ", TEST_ACTIVITI_JOB_NAME)); }
.asList(jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME)), jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME)), jobService.createAndStartJob(jobServiceTestHelper.createJobCreateRequest(TEST_ACTIVITI_NAMESPACE_CD, TEST_ACTIVITI_JOB_NAME))); jobServiceTestHelper.setCurrentUserNamespaceAuthorizations(TEST_ACTIVITI_NAMESPACE_CD, Arrays.asList(NamespacePermissionEnum.READ));
Job job = jobServiceTestHelper.createJobForCreateClusterForActivitiXml(getCheckClusterActivitiXml(fieldExtensions), parameters); assertNotNull(job);
private Job createJobAndCheckTaskStatusSuccess(String activitiXml, List<Parameter> parameters, Map<String, Object> variableValuesToValidate) throws Exception Job job = jobServiceTestHelper.createJobFromActivitiXml(activitiXml, parameters); assertNotNull(job);