cancel
Showing results for 
Search instead for 
Did you mean: 

ActivitiRule Unittests fail

billdoor
Champ in-the-making
Champ in-the-making
Hello,

I have two testcases, modeled after the Template presented in this Forum. Each single one of them Succeeds, while executing both of them at the same time fails the second one, because "…processInstance updated in concurrent Transaction".

As both of them work fine, it seems the actions taken by ActivitiRule or the @Rule and @Depolyment annotations are not 100% isolated for each Testcase, which kind of contradicts the concept of Unittests i guess?

What am i missing?
Regards + my code and configuration:

Tests (Two times the exact same class with altering Name):

public classProcessTest1 {

   @Rule
   public ActivitiRule engine = new ActivitiRule();

   @Test
   @Deployment (resources={"bpmn/processOne.bpmn20.xml"})
   public void startProcessCopy() throws Exception {
       
      RuntimeService runtimeService = engine.getRuntimeService();

      ProcessInstance instance = runtimeService.startProcessInstanceByKey("processOne");
      
      assertNotNull(instance.getId());
      List<Task> taskList = engine.getTaskService().createTaskQuery().processInstanceId(instance.getId()).taskAssignee("kermit").list();
      assertTrue(taskList.size()==1);
      Map<String, String> params = new HashMap<String, String>();
      params.put("numberOne", "900");
      params.put("numberTwo", "700");
      engine.getFormService().submitTaskFormData(taskList.get(0).getId(), params);
   }
}



activiti.cfg.xml:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">

   <bean id="processEngineConfiguration"
      class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"
      >

      <property name="jdbcUrl" value="jdbc:h2:mem:activitiTesting;DB_CLOSE_DELAY=10;FILE_LOCK=FS" />
      <property name="jdbcDriver" value="org.h2.Driver" />
      <property name="jdbcUsername" value="sa" />
      <property name="jdbcPassword" value="" />
      <property name="databaseSchemaUpdate" value="drop-create" />
      <property name="jobExecutorActivate" value="true" />
   </bean>

</beans>


1 REPLY 1

jbarrez
Star Contributor
Star Contributor
That seems very odd. But where is your second test method, and what process are you using?

Can you upload all these files for us so we can try it out?