From 403700f6e719c7044724e0837f7add1bab86a84c Mon Sep 17 00:00:00 2001 From: muellerfluri Date: Tue, 21 Jan 2025 11:39:35 +0100 Subject: [PATCH] feat(simulator-spring-boot): add MessageDirectionFilter and test --- .../ScenarioExecutionQueryService.java | 9 ++++++++ .../criteria/ScenarioExecutionCriteria.java | 5 ++++ .../web/rest/ScenarioExecutionResourceIT.java | 23 +++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/ScenarioExecutionQueryService.java b/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/ScenarioExecutionQueryService.java index afb0416f..9fc0363a 100644 --- a/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/ScenarioExecutionQueryService.java +++ b/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/ScenarioExecutionQueryService.java @@ -258,6 +258,15 @@ protected Specification createSpecification(ScenarioExecution ) ); } + if (nonNull(criteria.getScenarioMessagesDirection())) { + specification = + specification.and( + buildSpecification( + criteria.getScenarioMessagesDirection(), + root -> root.join(ScenarioExecution_.scenarioMessages, JoinType.LEFT).get(Message_.direction) + ) + ); + } if (nonNull(criteria.getScenarioParametersId())) { specification = specification.and( diff --git a/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/criteria/ScenarioExecutionCriteria.java b/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/criteria/ScenarioExecutionCriteria.java index 1ecea5e6..0a8370d3 100644 --- a/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/criteria/ScenarioExecutionCriteria.java +++ b/simulator-spring-boot/src/main/java/org/citrusframework/simulator/service/criteria/ScenarioExecutionCriteria.java @@ -66,6 +66,8 @@ public class ScenarioExecutionCriteria implements Serializable, Criteria { private @Nullable LongFilter scenarioMessagesId; + private @Nullable IntegerFilter scenarioMessagesDirection; + private @Nullable LongFilter scenarioParametersId; private @Nullable String headers; @@ -85,6 +87,7 @@ public ScenarioExecutionCriteria(ScenarioExecutionCriteria other) { this.status = other.status == null ? null : other.status.copy(); this.scenarioActionsId = other.scenarioActionsId == null ? null : other.scenarioActionsId.copy(); this.scenarioMessagesId = other.scenarioMessagesId == null ? null : other.scenarioMessagesId.copy(); + this.scenarioMessagesDirection = other.scenarioMessagesDirection == null ? null : other.scenarioMessagesDirection.copy(); this.scenarioParametersId = other.scenarioParametersId == null ? null : other.scenarioParametersId.copy(); this.headers = other.headers; this.scenarioMessagesPayload = other.scenarioMessagesPayload; @@ -110,6 +113,7 @@ public boolean equals(Object o) { .append(status, scenarioExecutionCriteria.status) .append(scenarioActionsId, scenarioExecutionCriteria.scenarioActionsId) .append(scenarioMessagesId, scenarioExecutionCriteria.scenarioMessagesId) + .append(scenarioMessagesDirection, scenarioExecutionCriteria.scenarioMessagesDirection) .append(scenarioParametersId, scenarioExecutionCriteria.scenarioParametersId) .append(headers, scenarioExecutionCriteria.headers) .append(scenarioMessagesPayload, scenarioExecutionCriteria.scenarioMessagesPayload) @@ -127,6 +131,7 @@ public int hashCode() { .append(status) .append(scenarioActionsId) .append(scenarioMessagesId) + .append(scenarioMessagesDirection) .append(scenarioParametersId) .append(headers) .append(scenarioMessagesPayload) diff --git a/simulator-spring-boot/src/test/java/org/citrusframework/simulator/web/rest/ScenarioExecutionResourceIT.java b/simulator-spring-boot/src/test/java/org/citrusframework/simulator/web/rest/ScenarioExecutionResourceIT.java index 39464588..7f51842d 100644 --- a/simulator-spring-boot/src/test/java/org/citrusframework/simulator/web/rest/ScenarioExecutionResourceIT.java +++ b/simulator-spring-boot/src/test/java/org/citrusframework/simulator/web/rest/ScenarioExecutionResourceIT.java @@ -398,6 +398,29 @@ void getAllScenarioExecutionsByScenarioMessagesIsEqualToSomething() throws Excep defaultScenarioExecutionShouldNotBeFound("scenarioMessagesId.equals=" + (scenarioMessagesId + 1)); } + @Test + @Transactional + void getAllScenarioExecutionsByScenarioMessageDirectionIsEqualToSomething() throws Exception { + Message scenarioMessages; + if (TestUtil.findAll(entityManager, Message.class).isEmpty()) { + scenarioExecutionRepository.saveAndFlush(scenarioExecution); + scenarioMessages = MessageResourceIT.createEntity(entityManager); + } else { + scenarioMessages = TestUtil.findAll(entityManager, Message.class).get(0); + } + scenarioMessages.setDirection(Message.Direction.INBOUND); + entityManager.persist(scenarioMessages); + entityManager.flush(); + scenarioExecution.addScenarioMessage(scenarioMessages); + scenarioExecutionRepository.saveAndFlush(scenarioExecution); + int scenarioMessageDirection = scenarioMessages.getDirection().getId(); + // Get all the scenarioExecutionList where scenarioMessagesDirection equals to scenarioMessagesDirection + defaultScenarioExecutionShouldBeFound("scenarioMessagesDirection.equals=" + scenarioMessageDirection); + + // Get all the scenarioExecutionList where scenarioMessagesDirection equals to (scenarioMessagesDirection + 1) + defaultScenarioExecutionShouldNotBeFound("scenarioMessagesDirection.equals=" + (Message.Direction.UNKNOWN.getId())); + } + @Test @Transactional void getAllScenarioExecutionsByScenarioMessagesPayloadIsEqualToSomething() throws Exception {