Skip to content

Commit c89e38c

Browse files
Unit test fixes
1 parent 6ce5f02 commit c89e38c

File tree

15 files changed

+125
-146
lines changed

15 files changed

+125
-146
lines changed

.github/workflows/async-history.yml

Lines changed: 0 additions & 39 deletions
This file was deleted.

modules/flowable-dmn-engine/src/test/java/org/flowable/dmn/engine/test/history/HistoryTest.java

Lines changed: 67 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
1616
import static org.assertj.core.api.Assertions.assertThat;
1717

18-
import java.util.Date;
18+
import java.util.Calendar;
19+
import java.util.GregorianCalendar;
1920
import java.util.List;
2021

2122
import org.flowable.dmn.api.DmnHistoricDecisionExecution;
@@ -275,34 +276,41 @@ public void testHistoricDecisionQueryOrdering() throws Exception {
275276
DmnHistoricDecisionExecution decisionExecution = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").singleResult();
276277
String firstDecisionExecutionId = decisionExecution.getId();
277278

278-
dmnEngineConfiguration.getClock().setCurrentTime(new Date(new Date().getTime() + 2000L));
279-
280-
ruleService.createExecuteDecisionBuilder()
281-
.decisionKey("decision1")
282-
.variable("inputVariable1", 11)
283-
.executeWithSingleResult();
284-
285-
List<DmnHistoricDecisionExecution> historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").list();
286-
assertThat(historicExecutions).hasSize(2);
287-
288-
String secondDecisionExcecutionId = null;
289-
for (DmnHistoricDecisionExecution historicDecisionExecution : historicExecutions) {
290-
if (!historicDecisionExecution.getId().equals(firstDecisionExecutionId)) {
291-
secondDecisionExcecutionId = historicDecisionExecution.getId();
279+
try {
280+
Calendar nextCal = new GregorianCalendar();
281+
nextCal.add(Calendar.DATE, 2);
282+
dmnEngineConfiguration.getClock().setCurrentTime(nextCal.getTime());
283+
284+
ruleService.createExecuteDecisionBuilder()
285+
.decisionKey("decision1")
286+
.variable("inputVariable1", 11)
287+
.executeWithSingleResult();
288+
289+
List<DmnHistoricDecisionExecution> historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").list();
290+
assertThat(historicExecutions).hasSize(2);
291+
292+
String secondDecisionExcecutionId = null;
293+
for (DmnHistoricDecisionExecution historicDecisionExecution : historicExecutions) {
294+
if (!historicDecisionExecution.getId().equals(firstDecisionExecutionId)) {
295+
secondDecisionExcecutionId = historicDecisionExecution.getId();
296+
}
292297
}
298+
299+
assertThat(secondDecisionExcecutionId).isNotNull();
300+
301+
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().asc().list();
302+
assertThat(historicExecutions)
303+
.extracting(DmnHistoricDecisionExecution::getId)
304+
.containsExactly(firstDecisionExecutionId, secondDecisionExcecutionId);
305+
306+
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().desc().list();
307+
assertThat(historicExecutions)
308+
.extracting(DmnHistoricDecisionExecution::getId)
309+
.containsExactly(secondDecisionExcecutionId, firstDecisionExecutionId);
310+
311+
} finally {
312+
dmnEngineConfiguration.getClock().reset();
293313
}
294-
295-
assertThat(secondDecisionExcecutionId).isNotNull();
296-
297-
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().asc().list();
298-
assertThat(historicExecutions)
299-
.extracting(DmnHistoricDecisionExecution::getId)
300-
.containsExactly(firstDecisionExecutionId, secondDecisionExcecutionId);
301-
302-
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().desc().list();
303-
assertThat(historicExecutions)
304-
.extracting(DmnHistoricDecisionExecution::getId)
305-
.containsExactly(secondDecisionExcecutionId, firstDecisionExecutionId);
306314
}
307315

308316
@DmnDeployment
@@ -315,34 +323,41 @@ public void testHistoricDecisionQueryOrderingAndPaging() throws Exception {
315323
DmnHistoricDecisionExecution decisionExecution = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").singleResult();
316324
String firstDecisionExecutionId = decisionExecution.getId();
317325

318-
dmnEngineConfiguration.getClock().setCurrentTime(new Date(new Date().getTime() + 2000L));
319-
320-
ruleService.createExecuteDecisionBuilder()
321-
.decisionKey("decision1")
322-
.variable("inputVariable1", 11)
323-
.executeWithSingleResult();
324-
325-
List<DmnHistoricDecisionExecution> historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").list();
326-
assertThat(historicExecutions).hasSize(2);
326+
try {
327+
Calendar nextCal = new GregorianCalendar();
328+
nextCal.add(Calendar.DATE, 2);
329+
dmnEngineConfiguration.getClock().setCurrentTime(nextCal.getTime());
327330

328-
String secondDecisionExcecutionId = null;
329-
for (DmnHistoricDecisionExecution historicDecisionExecution : historicExecutions) {
330-
if (!historicDecisionExecution.getId().equals(firstDecisionExecutionId)) {
331-
secondDecisionExcecutionId = historicDecisionExecution.getId();
331+
ruleService.createExecuteDecisionBuilder()
332+
.decisionKey("decision1")
333+
.variable("inputVariable1", 11)
334+
.executeWithSingleResult();
335+
336+
List<DmnHistoricDecisionExecution> historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").list();
337+
assertThat(historicExecutions).hasSize(2);
338+
339+
String secondDecisionExcecutionId = null;
340+
for (DmnHistoricDecisionExecution historicDecisionExecution : historicExecutions) {
341+
if (!historicDecisionExecution.getId().equals(firstDecisionExecutionId)) {
342+
secondDecisionExcecutionId = historicDecisionExecution.getId();
343+
}
332344
}
345+
346+
assertThat(secondDecisionExcecutionId).isNotNull();
347+
348+
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().asc().listPage(0, 10);
349+
assertThat(historicExecutions)
350+
.extracting(DmnHistoricDecisionExecution::getId)
351+
.containsExactly(firstDecisionExecutionId, secondDecisionExcecutionId);
352+
353+
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().desc().listPage(0, 10);
354+
assertThat(historicExecutions)
355+
.extracting(DmnHistoricDecisionExecution::getId)
356+
.containsExactly(secondDecisionExcecutionId, firstDecisionExecutionId);
357+
358+
} finally {
359+
dmnEngineConfiguration.getClock().reset();
333360
}
334-
335-
assertThat(secondDecisionExcecutionId).isNotNull();
336-
337-
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().asc().listPage(0, 10);
338-
assertThat(historicExecutions)
339-
.extracting(DmnHistoricDecisionExecution::getId)
340-
.containsExactly(firstDecisionExecutionId, secondDecisionExcecutionId);
341-
342-
historicExecutions = historyService.createHistoricDecisionExecutionQuery().decisionKey("decision1").orderByStartTime().desc().listPage(0, 10);
343-
assertThat(historicExecutions)
344-
.extracting(DmnHistoricDecisionExecution::getId)
345-
.containsExactly(secondDecisionExcecutionId, firstDecisionExecutionId);
346361
}
347362

348363
@DmnDeployment

modules/flowable-dmn-rest/src/test/java/org/flowable/dmn/rest/service/api/repository/DmnDeploymentCollectionResourceTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ public void testGetDeployments() throws Exception {
246246
);
247247

248248
} finally {
249+
dmnEngineConfiguration.getClock().reset();
250+
249251
// Always cleanup any created deployments, even if the test failed
250252
List<DmnDeployment> deployments = dmnRepositoryService.createDeploymentQuery().list();
251253
for (DmnDeployment deployment : deployments) {
@@ -373,6 +375,8 @@ public void testGetDeploymentsDecisionService() throws Exception {
373375
);
374376

375377
} finally {
378+
dmnEngineConfiguration.getClock().reset();
379+
376380
// Always cleanup any created deployments, even if the test failed
377381
List<DmnDeployment> deployments = dmnRepositoryService.createDeploymentQuery().list();
378382
for (DmnDeployment deployment : deployments) {

modules/flowable-engine-common/src/main/java/org/flowable/common/engine/impl/persistence/entity/data/impl/MybatisByteArrayDataManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void deleteByteArrayNoRevisionCheck(String byteArrayEntityId) {
5454

5555
@Override
5656
public void bulkDeleteByteArraysNoRevisionCheck(List<String> byteArrayEntityIds) {
57-
getDbSqlSession().delete("deleteByteArraysNoRevisionCheck", byteArrayEntityIds, ByteArrayEntityImpl.class);
57+
getDbSqlSession().delete("deleteByteArraysNoRevisionCheck", createSafeInValuesList(byteArrayEntityIds), ByteArrayEntityImpl.class);
5858
}
5959

6060
@Override

modules/flowable-engine-common/src/main/resources/org/flowable/common/db/mapping/entity/ByteArray.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,15 @@
7373
</delete>
7474

7575
<delete id="deleteByteArraysNoRevisionCheck" parameterType="java.util.List">
76-
delete from ${prefix}ACT_GE_BYTEARRAY where ID_ in
77-
<foreach item="byteArrayId" index="index" collection="collection" open="(" separator="," close=")">
78-
#{byteArrayId}
76+
delete from ${prefix}ACT_GE_BYTEARRAY where
77+
<foreach item="byteArrayItem" index="byteIndex" collection="collection">
78+
<if test="byteIndex &gt; 0">
79+
or
80+
</if>
81+
ID_ in
82+
<foreach item="byteArrayId" index="index" collection="byteArrayItem" open="(" separator="," close=")">
83+
#{byteArrayId}
84+
</foreach>
7985
</foreach>
8086
</delete>
8187

modules/flowable-engine/src/test/java/org/flowable/engine/test/jobexecutor/BulkMoveTimerJobsToExecutableJobsTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ public void cleanup() {
6767

6868
@Test
6969
public void testBulkUpdateAndDelete() {
70-
7170
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor();
7271
commandExecutor.execute(commandContext -> {
7372

@@ -120,7 +119,6 @@ public Object execute(CommandContext commandContext) {
120119

121120
@Test
122121
public void testBulkDeleteWithByteArrays() {
123-
124122
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor();
125123
commandExecutor.execute(commandContext -> {
126124

modules/flowable5-spring-test/src/test/java/org/activiti/spring/test/autodeployment/SpringAutoDeployTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@
2525
import org.flowable.engine.repository.DeploymentQuery;
2626
import org.flowable.engine.repository.ProcessDefinition;
2727
import org.flowable.engine.repository.ProcessDefinitionQuery;
28-
import org.springframework.context.ApplicationContext;
29-
import org.springframework.context.support.AbstractXmlApplicationContext;
28+
import org.springframework.context.ConfigurableApplicationContext;
3029
import org.springframework.context.support.ClassPathXmlApplicationContext;
3130

3231
/**
@@ -42,7 +41,7 @@ public class SpringAutoDeployTest extends PvmTestCase {
4241
protected static final String CTX_DEPLOYMENT_MODE_SINGLE_RESOURCE = "org/activiti/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-single-resource-context.xml";
4342
protected static final String CTX_DEPLOYMENT_MODE_RESOURCE_PARENT_FOLDER = "org/activiti/spring/test/autodeployment/SpringAutoDeployTest-deploymentmode-resource-parent-folder-context.xml";
4443

45-
protected ApplicationContext applicationContext;
44+
protected ConfigurableApplicationContext applicationContext;
4645
protected RepositoryService repositoryService;
4746

4847
protected void createAppContext(String path) {
@@ -93,7 +92,7 @@ public void testNoRedeploymentForSpringContainerRestart() throws Exception {
9392
public void testResourceRedeploymentAfterProcessDefinitionChange() throws Exception {
9493
createAppContext(CTX_PATH);
9594
assertEquals(1, repositoryService.createDeploymentQuery().count());
96-
((AbstractXmlApplicationContext) applicationContext).destroy();
95+
applicationContext.close();
9796

9897
String filePath = "org/activiti/spring/test/autodeployment/autodeploy.a.bpmn20.xml";
9998
String originalBpmnFileContent = IoUtil.readFileAsString(filePath);

modules/flowable5-spring-test/src/test/java/org/activiti/spring/test/email/JndiEmailTest.java

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
import java.util.Map;
1717
import java.util.Properties;
1818

19-
import javax.mail.NoSuchProviderException;
20-
import javax.mail.Provider;
21-
import javax.mail.Provider.Type;
22-
import javax.mail.Session;
19+
import javax.naming.InitialContext;
2320
import javax.naming.NamingException;
2421

2522
import org.activiti.spring.impl.test.SpringFlowableTestCase;
@@ -28,16 +25,20 @@
2825
import org.junit.BeforeClass;
2926
import org.slf4j.Logger;
3027
import org.slf4j.LoggerFactory;
31-
import org.springframework.mock.jndi.SimpleNamingContextBuilder;
3228
import org.springframework.test.context.ContextConfiguration;
3329

30+
import jakarta.mail.NoSuchProviderException;
31+
import jakarta.mail.Provider;
32+
import jakarta.mail.Provider.Type;
33+
import jakarta.mail.Session;
34+
3435
@ContextConfiguration("classpath:org/activiti/spring/test/email/jndiEmailConfiguaration-context.xml")
3536
public class JndiEmailTest extends SpringFlowableTestCase {
3637

3738
private static final Logger LOGGER = LoggerFactory.getLogger(JndiEmailTest.class);
3839

3940
@BeforeClass
40-
public void setUp() {
41+
public void setUp() throws NoSuchProviderException, NamingException {
4142
Properties props = new Properties();
4243
props.put("mail.transport.protocol", "smtp");
4344
props.put("mail.smtp.provider.class", MockEmailTransport.class.getName());
@@ -47,16 +48,11 @@ public void setUp() {
4748

4849
Provider provider = new Provider(Type.TRANSPORT, "smtp", MockEmailTransport.class.getName(), "test", "1.0");
4950
Session mailSession = Session.getDefaultInstance(props);
50-
SimpleNamingContextBuilder builder = null;
51-
try {
52-
mailSession.setProvider(provider);
53-
builder = SimpleNamingContextBuilder.emptyActivatedContextBuilder();
54-
builder.bind("java:comp/env/Session", mailSession);
55-
} catch (NamingException e) {
56-
LOGGER.error("Naming error in email setup", e);
57-
} catch (NoSuchProviderException e) {
58-
LOGGER.error("provider error in email setup", e);
59-
}
51+
mailSession.setProvider(provider);
52+
InitialContext ctx = new InitialContext();
53+
ctx.createSubcontext("java:comp")
54+
.createSubcontext("env")
55+
.bind("Session", mailSession);
6056
}
6157

6258
@Deployment(resources = { "org/activiti/spring/test/email/EmailTaskUsingJndi.bpmn20.xml" })

modules/flowable5-spring-test/src/test/java/org/activiti/spring/test/email/MockEmailTransport.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@
1414

1515
import java.io.IOException;
1616

17-
import javax.mail.Address;
18-
import javax.mail.Message;
19-
import javax.mail.MessagingException;
20-
import javax.mail.Session;
21-
import javax.mail.Transport;
22-
import javax.mail.URLName;
23-
2417
import org.slf4j.Logger;
2518
import org.slf4j.LoggerFactory;
2619

20+
import jakarta.mail.Address;
21+
import jakarta.mail.Message;
22+
import jakarta.mail.MessagingException;
23+
import jakarta.mail.Session;
24+
import jakarta.mail.Transport;
25+
import jakarta.mail.URLName;
26+
2727
/**
2828
* @author Hariprasath Manivannan
2929
*/

modules/flowable5-spring-test/src/test/java/org/activiti/spring/test/transaction/UserBean.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313

1414
package org.activiti.spring.test.transaction;
1515

16+
import javax.sql.DataSource;
17+
1618
import org.flowable.engine.RuntimeService;
1719
import org.flowable.engine.TaskService;
18-
import org.springframework.beans.factory.annotation.Required;
20+
import org.springframework.beans.factory.annotation.Autowired;
1921
import org.springframework.jdbc.core.JdbcTemplate;
2022
import org.springframework.transaction.annotation.Transactional;
2123

22-
import javax.sql.DataSource;
23-
2424
/**
2525
* @author Tom Baeyens
2626
*/
@@ -65,17 +65,17 @@ public void completeTask(String taskId) {
6565
// getters and setters
6666
// //////////////////////////////////////////////////////
6767

68-
@Required
68+
@Autowired
6969
public void setRuntimeService(RuntimeService runtimeService) {
7070
this.runtimeService = runtimeService;
7171
}
7272

73-
@Required
73+
@Autowired
7474
public void setTaskService(TaskService taskService) {
7575
this.taskService = taskService;
7676
}
7777

78-
@Required
78+
@Autowired
7979
public void setDataSource(DataSource dataSource) {
8080
this.dataSource = dataSource;
8181
}

0 commit comments

Comments
 (0)