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

OZG-7501 OZG-7899 Lock after forward

parent 486d10f3
No related branches found
No related tags found
1 merge request!22Ozg 7501 weiterleitung vorbereiten
......@@ -101,19 +101,14 @@ public class ForwardingEventListener {
}
void handleForwardVorgangCommand(Command command) {
service.forward(forwardingRequestMapper.fromCommand(command));
lockVorgangOnForwarding(command);
service.forward(updateVorgangVersion(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());
}
ForwardingRequest updateVorgangVersion(ForwardingRequest request) {
var vorgang = vorgangService.getById(request.getVorgangId());
return request.toBuilder().version(vorgang.getVersion()).build();
vorgangService.lockVorgang(lock, command.getVorgangId(), command.getRelationVersion() + 1);
}
private void handleException(Runnable runnable, String commandId) {
......
......@@ -146,19 +146,15 @@ class ForwardingEventListenerTest {
private final Command command = CommandTestFactory.createBuilder().bodyObject(commandBody()).build();
private final Lock lock = LockTestFactory.create();
private final ForwardingRequest request = ForwardingRequestTestFactory.create();
private final ForwardingRequest updatedRequest = ForwardingRequestTestFactory.createBuilder().version(request.getVersion() + 1).build();
@Captor
private ArgumentCaptor<Lock> lockCaptor;
@Captor
private ArgumentCaptor<ForwardingRequest> forwardingRequestCaptor;
@Captor
private ArgumentCaptor<VorgangLockedEvent> lockedEventCaptor;
@BeforeEach
void init() {
when(forwardingRequestMapper.fromCommand(any())).thenReturn(request);
when(lockMapper.fromCommand(any())).thenReturn(lock);
doReturn(updatedRequest).when(listener).updateVorgangVersion(any());
}
@Test
......@@ -172,7 +168,7 @@ class ForwardingEventListenerTest {
void shouldLockVorgang() {
handleForwardVorgangCommand();
verify(vorgangService).lockVorgang(lockCaptor.capture(), eq(VorgangTestFactory.ID), eq(CommandTestFactory.RELATION_VERSION));
verify(vorgangService).lockVorgang(lockCaptor.capture(), eq(VorgangTestFactory.ID), eq(CommandTestFactory.RELATION_VERSION + 1));
assertThat(lockCaptor.getValue()).usingRecursiveComparison()
.isEqualTo(LockTestFactory.createBuilder().reason("Vorgang was forwarded").build());
}
......@@ -184,19 +180,11 @@ class ForwardingEventListenerTest {
verify(forwardingRequestMapper).fromCommand(command);
}
@Test
void shouldUpdateVorgangVersionInRequest() {
handleForwardVorgangCommand();
verify(listener).updateVorgangVersion(request);
}
@Test
void shouldCallForwardingService() {
handleForwardVorgangCommand();
verify(forwardingService).forward(forwardingRequestCaptor.capture());
assertThat(forwardingRequestCaptor.getValue()).isSameAs(updatedRequest);
verify(forwardingService).forward(same(request));
}
@Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment