From 4be80922679aa7fc2e6a3e6b0a22db97d456b918 Mon Sep 17 00:00:00 2001 From: Krzysztof <krzysztof.witukiewicz@mgm-tp.com> Date: Fri, 14 Mar 2025 13:44:23 +0100 Subject: [PATCH] OZG-7501 OZG-7899 Forward after locking --- .../redirect/ForwardingEventListener.java | 8 +++++-- .../redirect/ForwardingEventListenerTest.java | 21 ++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java index 5462a6675..7303a7b85 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListener.java @@ -101,14 +101,18 @@ public class ForwardingEventListener { } void handleForwardVorgangCommand(Command command) { - service.forward(forwardingRequestMapper.fromCommand(command)); lockVorgangOnForwarding(command); + service.forward(incrementVersion(forwardingRequestMapper.fromCommand(command))); publisher.publishEvent(new VorgangLockedEvent(command)); } private void lockVorgangOnForwarding(Command command) { var lock = lockMapper.fromCommand(command).toBuilder().reason("Vorgang was forwarded").build(); - vorgangService.lockVorgang(lock, command.getVorgangId(), command.getRelationVersion() + 1); + vorgangService.lockVorgang(lock, command.getVorgangId(), command.getRelationVersion()); + } + + private ForwardingRequest incrementVersion(ForwardingRequest request) { + return request.toBuilder().version(request.getVersion() + 1).build(); } private void handleException(Runnable runnable, String commandId) { diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java index 7ea1432a9..6e8e2b676 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/redirect/ForwardingEventListenerTest.java @@ -97,7 +97,7 @@ class ForwardingEventListenerTest { @Nested class OnMailSentEvent { - private Forwarding forwarding = ForwardingTestFactory.create(); + private final Forwarding forwarding = ForwardingTestFactory.create(); @Test void shouldCallRedirectService() { @@ -145,15 +145,16 @@ class ForwardingEventListenerTest { private final Command command = CommandTestFactory.createBuilder().bodyObject(commandBody()).build(); private final Lock lock = LockTestFactory.create(); - private final ForwardingRequest request = ForwardingRequestTestFactory.create(); @Captor private ArgumentCaptor<Lock> lockCaptor; @Captor private ArgumentCaptor<VorgangLockedEvent> lockedEventCaptor; + @Captor + private ArgumentCaptor<ForwardingRequest> requestCaptor; @BeforeEach void init() { - when(forwardingRequestMapper.fromCommand(any())).thenReturn(request); + when(forwardingRequestMapper.fromCommand(any())).thenReturn(ForwardingRequestTestFactory.create()); when(lockMapper.fromCommand(any())).thenReturn(lock); } @@ -168,7 +169,7 @@ class ForwardingEventListenerTest { void shouldLockVorgang() { handleForwardVorgangCommand(); - verify(vorgangService).lockVorgang(lockCaptor.capture(), eq(VorgangTestFactory.ID), eq(CommandTestFactory.RELATION_VERSION + 1)); + verify(vorgangService).lockVorgang(lockCaptor.capture(), eq(VorgangTestFactory.ID), eq(CommandTestFactory.RELATION_VERSION)); assertThat(lockCaptor.getValue()).usingRecursiveComparison() .isEqualTo(LockTestFactory.createBuilder().reason("Vorgang was forwarded").build()); } @@ -184,7 +185,17 @@ class ForwardingEventListenerTest { void shouldCallForwardingService() { handleForwardVorgangCommand(); - verify(forwardingService).forward(same(request)); + verify(forwardingService).forward(requestCaptor.capture()); + assertThat(requestCaptor.getValue()).usingRecursiveComparison().ignoringFields("version") + .isEqualTo(ForwardingRequestTestFactory.create()); + } + + @Test + void shouldIncrementVersionInRequest() { + handleForwardVorgangCommand(); + + verify(forwardingService).forward(requestCaptor.capture()); + assertThat(requestCaptor.getValue().getVersion()).isEqualTo(VorgangTestFactory.VERSION + 1); } @Test -- GitLab