Skip to content
Snippets Groups Projects
Commit 4be80922 authored by Krzysztof Witukiewicz's avatar Krzysztof Witukiewicz
Browse files

OZG-7501 OZG-7899 Forward after locking

parent 136a47f0
No related branches found
No related tags found
1 merge request!22Ozg 7501 weiterleitung vorbereiten
......@@ -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) {
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment