### Question:
CaseManagementCallActivityConverter extends BaseCallActivityConverter<ReusableSubprocess, BaseReusableSubprocessTaskExecutionSet> { @Override protected BaseReusableSubprocessTaskExecutionSet createReusableSubprocessTaskExecutionSet(CallActivity activity, CallActivityPropertyReader p) { return p.isCase() ? new CaseReusableSubprocessTaskExecutionSet(new CalledElement(activity.getCalledElement()), new IsCase(true), new Independent(p.isIndependent()), new AbortParent(p.isAbortParent()), new WaitForCompletion(p.isWaitForCompletion()), new IsAsync(p.isAsync()), new AdHocAutostart(p.isAdHocAutostart()), new IsMultipleInstance(p.isMultipleInstance()), new MultipleInstanceExecutionMode(p.isSequential()), new MultipleInstanceCollectionInput(p.getCollectionInput()), new MultipleInstanceDataInput(p.getDataInput()), new MultipleInstanceCollectionOutput(p.getCollectionOutput()), new MultipleInstanceDataOutput(p.getDataOutput()), new MultipleInstanceCompletionCondition(p.getCompletionCondition()), new OnEntryAction(p.getOnEntryAction()), new OnExitAction(p.getOnExitAction()), new SLADueDate(p.getSlaDueDate())) : new ProcessReusableSubprocessTaskExecutionSet(new CalledElement(activity.getCalledElement()), new IsCase(false), new Independent(p.isIndependent()), new AbortParent(p.isAbortParent()), new WaitForCompletion(p.isWaitForCompletion()), new IsAsync(p.isAsync()), new AdHocAutostart(p.isAdHocAutostart()), new IsMultipleInstance(p.isMultipleInstance()), new MultipleInstanceExecutionMode(p.isSequential()), new MultipleInstanceCollectionInput(p.getCollectionInput()), new MultipleInstanceDataInput(p.getDataInput()), new MultipleInstanceCollectionOutput(p.getCollectionOutput()), new MultipleInstanceDataOutput(p.getDataOutput()), new MultipleInstanceCompletionCondition(p.getCompletionCondition()), new OnEntryAction(p.getOnEntryAction()), new OnExitAction(p.getOnExitAction()), new SLADueDate(p.getSlaDueDate())); } CaseManagementCallActivityConverter(TypedFactoryManager factoryManager,
                                               PropertyReaderFactory propertyReaderFactory);   }### Answer:
@Test public void testCreateReusableSubprocessTaskExecutionSet_case() { CallActivity callActivity = bpmn2.createCallActivity(); CustomElement.isCase.of(callActivity).set(Boolean.TRUE); CustomElement.async.of(callActivity).set(Boolean.TRUE); CustomElement.slaDueDate.of(callActivity).set(SLA_DUE_DATE); CallActivityPropertyReader propertyReader = new CallActivityPropertyReader(callActivity, definitionResolver.getDiagram(), definitionResolver); BaseReusableSubprocessTaskExecutionSet result = tested.createReusableSubprocessTaskExecutionSet(callActivity, propertyReader); assertTrue(CaseReusableSubprocessTaskExecutionSet.class.isInstance(result)); assertTrue(result.getIsCase().getValue()); assertTrue(result.getIsAsync().getValue()); assertTrue(result.getSlaDueDate().getValue().contains(SLA_DUE_DATE)); }
@Test public void testCreateReusableSubprocessTaskExecutionSet_process() { CallActivity callActivity = bpmn2.createCallActivity(); CustomElement.isCase.of(callActivity).set(Boolean.FALSE); CustomElement.async.of(callActivity).set(Boolean.TRUE); CustomElement.slaDueDate.of(callActivity).set(SLA_DUE_DATE); CallActivityPropertyReader propertyReader = new CallActivityPropertyReader(callActivity, definitionResolver.getDiagram(), definitionResolver); BaseReusableSubprocessTaskExecutionSet result = tested.createReusableSubprocessTaskExecutionSet(callActivity, propertyReader); assertTrue(ProcessReusableSubprocessTaskExecutionSet.class.isInstance(result)); assertFalse(result.getIsCase().getValue()); assertTrue(result.getIsAsync().getValue()); assertTrue(result.getSlaDueDate().getValue().contains(SLA_DUE_DATE)); }