Skip to content

Commit 106a3b8

Browse files
muellerfluribbortt
authored andcommitted
feat(simulator-spring-boot): add MessageDirectionFilter and test
1 parent bcb593c commit 106a3b8

File tree

3 files changed

+39
-8
lines changed

3 files changed

+39
-8
lines changed

simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/ScenarioExecutionQueryService.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,15 @@ protected Specification<ScenarioExecution> createSpecification(ScenarioExecution
258258
)
259259
);
260260
}
261+
if (nonNull(criteria.getScenarioMessagesDirection())) {
262+
specification =
263+
specification.and(
264+
buildSpecification(
265+
criteria.getScenarioMessagesDirection(),
266+
root -> root.join(ScenarioExecution_.scenarioMessages, JoinType.LEFT).get(Message_.direction)
267+
)
268+
);
269+
}
261270
if (nonNull(criteria.getScenarioParametersId())) {
262271
specification =
263272
specification.and(

simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/criteria/ScenarioExecutionCriteria.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ public class ScenarioExecutionCriteria implements Serializable, Criteria {
6666

6767
private @Nullable LongFilter scenarioMessagesId;
6868

69+
private @Nullable IntegerFilter scenarioMessagesDirection;
70+
6971
private @Nullable LongFilter scenarioParametersId;
7072

7173
private @Nullable String headers;
@@ -85,6 +87,7 @@ public ScenarioExecutionCriteria(ScenarioExecutionCriteria other) {
8587
this.status = other.status == null ? null : other.status.copy();
8688
this.scenarioActionsId = other.scenarioActionsId == null ? null : other.scenarioActionsId.copy();
8789
this.scenarioMessagesId = other.scenarioMessagesId == null ? null : other.scenarioMessagesId.copy();
90+
this.scenarioMessagesDirection = other.scenarioMessagesDirection == null ? null : other.scenarioMessagesDirection.copy();
8891
this.scenarioParametersId = other.scenarioParametersId == null ? null : other.scenarioParametersId.copy();
8992
this.headers = other.headers;
9093
this.scenarioMessagesPayload = other.scenarioMessagesPayload;
@@ -110,6 +113,7 @@ public boolean equals(Object o) {
110113
.append(status, scenarioExecutionCriteria.status)
111114
.append(scenarioActionsId, scenarioExecutionCriteria.scenarioActionsId)
112115
.append(scenarioMessagesId, scenarioExecutionCriteria.scenarioMessagesId)
116+
.append(scenarioMessagesDirection, scenarioExecutionCriteria.scenarioMessagesDirection)
113117
.append(scenarioParametersId, scenarioExecutionCriteria.scenarioParametersId)
114118
.append(headers, scenarioExecutionCriteria.headers)
115119
.append(scenarioMessagesPayload, scenarioExecutionCriteria.scenarioMessagesPayload)
@@ -127,6 +131,7 @@ public int hashCode() {
127131
.append(status)
128132
.append(scenarioActionsId)
129133
.append(scenarioMessagesId)
134+
.append(scenarioMessagesDirection)
130135
.append(scenarioParametersId)
131136
.append(headers)
132137
.append(scenarioMessagesPayload)

simulator-spring-boot/src/test/java/org/citrusframework/simulator/web/rest/ScenarioExecutionResourceIT.java

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,8 @@
2020
import jakarta.persistence.EntityManager;
2121
import org.assertj.core.data.TemporalUnitLessThanOffset;
2222
import org.citrusframework.simulator.IntegrationTest;
23-
import org.citrusframework.simulator.model.Message;
24-
import org.citrusframework.simulator.model.ScenarioAction;
25-
import org.citrusframework.simulator.model.ScenarioExecution;
23+
import org.citrusframework.simulator.model.*;
2624
import org.citrusframework.simulator.model.ScenarioExecution.ScenarioExecutionBuilder;
27-
import org.citrusframework.simulator.model.ScenarioParameter;
28-
import org.citrusframework.simulator.model.TestResult;
2925
import org.citrusframework.simulator.repository.ScenarioExecutionRepository;
3026
import org.citrusframework.simulator.scenario.AbstractSimulatorScenario;
3127
import org.citrusframework.simulator.scenario.Scenario;
@@ -57,9 +53,7 @@
5753
import static org.hamcrest.Matchers.hasSize;
5854
import static org.springframework.http.HttpStatus.OK;
5955
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
60-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
61-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
62-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
56+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
6357

6458
/**
6559
* Integration tests for the {@link ScenarioExecutionResource} REST controller.
@@ -398,6 +392,29 @@ void getAllScenarioExecutionsByScenarioMessagesIsEqualToSomething() throws Excep
398392
defaultScenarioExecutionShouldNotBeFound("scenarioMessagesId.equals=" + (scenarioMessagesId + 1));
399393
}
400394

395+
@Test
396+
@Transactional
397+
void getAllScenarioExecutionsByScenarioMessageDirectionIsEqualToSomething() throws Exception {
398+
Message scenarioMessages;
399+
if (TestUtil.findAll(entityManager, Message.class).isEmpty()) {
400+
scenarioExecutionRepository.saveAndFlush(scenarioExecution);
401+
scenarioMessages = MessageResourceIT.createEntity(entityManager);
402+
} else {
403+
scenarioMessages = TestUtil.findAll(entityManager, Message.class).get(0);
404+
}
405+
scenarioMessages.setDirection(Message.Direction.INBOUND);
406+
entityManager.persist(scenarioMessages);
407+
entityManager.flush();
408+
scenarioExecution.addScenarioMessage(scenarioMessages);
409+
scenarioExecutionRepository.saveAndFlush(scenarioExecution);
410+
int scenarioMessageDirection = scenarioMessages.getDirection().getId();
411+
// Get all the scenarioExecutionList where scenarioMessagesDirection equals to scenarioMessagesDirection
412+
defaultScenarioExecutionShouldBeFound("scenarioMessagesDirection.equals=" + scenarioMessageDirection);
413+
414+
// Get all the scenarioExecutionList where scenarioMessagesDirection equals to (scenarioMessagesDirection + 1)
415+
defaultScenarioExecutionShouldNotBeFound("scenarioMessagesDirection.equals=" + (Message.Direction.UNKNOWN.getId()));
416+
}
417+
401418
@Test
402419
@Transactional
403420
void getAllScenarioExecutionsByScenarioMessagesPayloadIsEqualToSomething() throws Exception {

0 commit comments

Comments
 (0)