diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java index a9f8f1597ecea5baf104af9ec71cd9df88ed9157..1525b91fcbe26e08c3b1464869a5e23b8f380f41 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/archivierung/ArchiveEventListener.java @@ -46,10 +46,10 @@ import de.ozgcloud.command.VorgangLockedEvent; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; -@Component() +@Component @RequiredArgsConstructor @Log4j2 -class ArchiveEventListener { +public class ArchiveEventListener { static final int MAXIMUM_CHECKS_FOR_PENDING_COMMANDS = 3; static final int WAIT_INTERVAL = 30 * 1000; @@ -57,10 +57,10 @@ class ArchiveEventListener { private static final String ERROR_MESSAGE_TEMPLATE = "Error on executing %s Command (id: %s)."; static final String ARCHIVE_VORGANG_ORDER = "ARCHIVE_VORGANG"; - private static final String IS_ARCHIVE_VORGANG_EVENT = "{T(de.ozgcloud.archive.vorgang.ArchiveEventListener).IS_ARCHIVE_VORGANG_COMMAND.test(event.getSource())}"; + private static final String IS_ARCHIVE_VORGANG_EVENT = "{T(de.ozgcloud.archive.archivierung.ArchiveEventListener).IS_ARCHIVE_VORGANG_COMMAND.test(event.getSource())}"; public static final Predicate<Command> IS_ARCHIVE_VORGANG_COMMAND = command -> ARCHIVE_VORGANG_ORDER.equals(command.getOrder()); - private static final String IS_LOCKED_BY_ARCHIVE_MANAGER_EVENT = "{T(de.ozgcloud.archive.vorgang.ArchiveEventListener)." + private static final String IS_LOCKED_BY_ARCHIVE_MANAGER_EVENT = "{T(de.ozgcloud.archive.archivierung.ArchiveEventListener)." + "IS_LOCK_BY_ARCHIVE_MANAGER_COMMAND.test(event.getCommand())}"; public static final Predicate<Command> IS_LOCK_BY_ARCHIVE_MANAGER_COMMAND = command -> CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME .equals(command.getCreatedByClientName()); diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java index cffcb269ead361bc2637320cc9831cb7c232563b..121c50c0f22613bce9ecb97ce1ab1b2a560076c9 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/ArchiveEventListenerITCase.java @@ -23,6 +23,7 @@ */ package de.ozgcloud.archive.archivierung; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import org.junit.jupiter.api.Nested; @@ -31,6 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.mock.mockito.SpyBean; import org.springframework.context.ApplicationEventPublisher; +import de.ozgcloud.archive.common.callcontext.CallContextUser; import de.ozgcloud.command.Command; import de.ozgcloud.command.CommandCreatedEventTestFactory; import de.ozgcloud.command.CommandTestFactory; @@ -68,4 +70,30 @@ class ArchiveEventListenerITCase { verifyNoInteractions(eventListener); } } + + @Nested + class TestOnVorgangLockedEvent { + + private static final Command COMMAND = CommandTestFactory.createBuilder() + .createdByClientName(CallContextUser.ARCHIVE_MANAGER_CLIENT_NAME) + .build(); + + @Test + void shouldReactOnOrder() { + var event = VorgangLockedEventTestFactory.withCommand(COMMAND); + doNothing().when(eventListener).onVorgangLockedEvent(any()); + + publisher.publishEvent(event); + + verify(eventListener).onVorgangLockedEvent(event); + } + + @Test + void shouldNotReactOnOtherOrder() { + publisher + .publishEvent(VorgangLockedEventTestFactory.withCommand(CommandTestFactory.createBuilder().createdByClientName("OTHER").build())); + + verifyNoInteractions(eventListener); + } + } } \ No newline at end of file diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/VorgangLockedEventTestFactory.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/VorgangLockedEventTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..7fb4dc2005d62f7699d1d6c26ca2e41800df4afc --- /dev/null +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/archivierung/VorgangLockedEventTestFactory.java @@ -0,0 +1,12 @@ +package de.ozgcloud.archive.archivierung; + +import de.ozgcloud.command.Command; +import de.ozgcloud.command.VorgangLockedEvent; + +public class VorgangLockedEventTestFactory { + + public static VorgangLockedEvent withCommand(Command command) { + return new VorgangLockedEvent(command); + } + +}