diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java index d8d18d10a35f0af062a13f6163c2322e432c8cef..35e7a7419b1238320dc624ea09ef9c22011d3d63 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/VorgangEventListener.java @@ -36,6 +36,7 @@ import de.ozgcloud.command.CommandCreatedEvent; import de.ozgcloud.command.CommandExecutedEvent; import de.ozgcloud.command.CommandFailedEvent; import de.ozgcloud.command.CommandRevokeFailedEvent; +import de.ozgcloud.command.CommandRevokedEvent; import de.ozgcloud.command.RevokeCommandEvent; import de.ozgcloud.vorgang.command.CommandService; import de.ozgcloud.vorgang.command.Order; @@ -132,6 +133,7 @@ public class VorgangEventListener { var command = event.getSource(); try { vorgangService.unlockVorgang(command); + publisher.publishEvent(new CommandRevokedEvent(command)); } catch (RuntimeException e) { LOG.error("Error unlocking vorgang.", e); publisher.publishEvent(new CommandRevokeFailedEvent(command.getId(), e.getMessage())); diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java index 1777bbfa47376f46a96918f6ef76721d0e68b0b3..95d602135383fdb2b3b5b777cf145a0ed4cd7922 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/VorgangEventListenerTest.java @@ -47,6 +47,7 @@ import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandExecutedEvent; import de.ozgcloud.command.CommandFailedEvent; import de.ozgcloud.command.CommandRevokeFailedEvent; +import de.ozgcloud.command.CommandRevokedEvent; import de.ozgcloud.command.RevokeCommandEvent; import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.vorgang.command.CommandCreatedEventTestFactory; @@ -268,7 +269,9 @@ class VorgangEventListenerTest { class TestRevokeLockVorgang { @Captor - private ArgumentCaptor<CommandRevokeFailedEvent> eventCaptor; + private ArgumentCaptor<CommandRevokedEvent> commandRevokedEventCaptor; + @Captor + private ArgumentCaptor<CommandRevokeFailedEvent> commandRevokeFailedEventCaptor; @Test void shouldCallUnlockVorgang() { @@ -279,6 +282,16 @@ class VorgangEventListenerTest { verify(service).unlockVorgang(command); } + @Test + void shouldPublishCommandRevokedEvent() { + var command = CommandTestFactory.create(); + + listener.onRevokeLockVorgang(new RevokeCommandEvent(command)); + + verify(publisher).publishEvent(commandRevokedEventCaptor.capture()); + assertThat(commandRevokedEventCaptor.getValue().getSource()).isSameAs(command); + } + @Test void shouldPublishCommandFailedEvent() { var command = CommandTestFactory.create(); @@ -287,8 +300,8 @@ class VorgangEventListenerTest { listener.onRevokeLockVorgang(new RevokeCommandEvent(command)); - verify(publisher).publishEvent(eventCaptor.capture()); - assertThat(eventCaptor.getValue()).satisfies(event -> { + verify(publisher).publishEvent(commandRevokeFailedEventCaptor.capture()); + assertThat(commandRevokeFailedEventCaptor.getValue()).satisfies(event -> { assertThat(event.getSource()).isEqualTo(CommandTestFactory.ID); assertThat(event.getErrorMessage()).isEqualTo(errorMessage); });