From 904e2571289e850cf474556147cf3bbba388efb2 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 4 Nov 2024 12:48:16 +0100
Subject: [PATCH] OZG-6991 publish command executed event

---
 .../vorgang/vorgang/VorgangEventListener.java |  2 ++
 .../vorgang/VorgangEventListenerTest.java     | 19 ++++++++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)

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 d8d18d10a..35e7a7419 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 1777bbfa4..95d602135 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);
 			});
-- 
GitLab