From 4edb8946163d68586ce4590492ca93bf2ffe33a9 Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 11 Apr 2025 11:04:13 +0200
Subject: [PATCH] OZG-7573 publish vorgang forwared event

---
 .../de/ozgcloud/command/VorgangForwardedEvent.java    |  9 +++++++++
 .../vorgang/redirect/ForwardingEventListener.java     |  2 ++
 .../vorgang/redirect/ForwardingEventListenerTest.java | 11 +++++++++++
 3 files changed, 22 insertions(+)
 create mode 100644 vorgang-manager-command/src/main/java/de/ozgcloud/command/VorgangForwardedEvent.java

diff --git a/vorgang-manager-command/src/main/java/de/ozgcloud/command/VorgangForwardedEvent.java b/vorgang-manager-command/src/main/java/de/ozgcloud/command/VorgangForwardedEvent.java
new file mode 100644
index 000000000..6b928f2ad
--- /dev/null
+++ b/vorgang-manager-command/src/main/java/de/ozgcloud/command/VorgangForwardedEvent.java
@@ -0,0 +1,9 @@
+package de.ozgcloud.command;
+
+public class VorgangForwardedEvent extends CommandExecutedEvent {
+
+	public VorgangForwardedEvent(Command command) {
+		super(command);
+	}
+
+}
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 7303a7b85..021d909de 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
@@ -33,6 +33,7 @@ import org.springframework.stereotype.Component;
 import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandCreatedEvent;
 import de.ozgcloud.command.CommandFailedEvent;
+import de.ozgcloud.command.VorgangForwardedEvent;
 import de.ozgcloud.command.VorgangLockedEvent;
 import de.ozgcloud.nachrichten.email.MailSendErrorEvent;
 import de.ozgcloud.nachrichten.email.MailSendRequest;
@@ -104,6 +105,7 @@ public class ForwardingEventListener {
 		lockVorgangOnForwarding(command);
 		service.forward(incrementVersion(forwardingRequestMapper.fromCommand(command)));
 		publisher.publishEvent(new VorgangLockedEvent(command));
+		publisher.publishEvent(new VorgangForwardedEvent(command));
 	}
 
 	private void lockVorgangOnForwarding(Command command) {
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 529d4a09a..73425da23 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
@@ -45,6 +45,7 @@ import com.thedeanda.lorem.LoremIpsum;
 import de.ozgcloud.command.Command;
 import de.ozgcloud.command.CommandCreatedEvent;
 import de.ozgcloud.command.CommandFailedEvent;
+import de.ozgcloud.command.VorgangForwardedEvent;
 import de.ozgcloud.command.VorgangLockedEvent;
 import de.ozgcloud.common.errorhandling.TechnicalException;
 import de.ozgcloud.nachrichten.email.MailSentEventTestFactory;
@@ -150,6 +151,8 @@ class ForwardingEventListenerTest {
 		@Captor
 		private ArgumentCaptor<VorgangLockedEvent> lockedEventCaptor;
 		@Captor
+		private ArgumentCaptor<VorgangForwardedEvent> forwardedEventCaptor;
+		@Captor
 		private ArgumentCaptor<ForwardingRequest> requestCaptor;
 
 		@BeforeEach
@@ -206,6 +209,14 @@ class ForwardingEventListenerTest {
 			assertThat(lockedEventCaptor.getValue().getCommand()).isSameAs(command);
 		}
 
+		@Test
+		void shouldPublishVorgangForwardedEvent() {
+			handleForwardVorgangCommand();
+
+			verify(publisher).publishEvent(forwardedEventCaptor.capture());
+			assertThat(forwardedEventCaptor.getValue().getCommand()).isSameAs(command);
+		}
+
 		private void handleForwardVorgangCommand() {
 			listener.handleForwardVorgangCommand(command);
 		}
-- 
GitLab