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

OZG-7501 OZG-7899 Extend ForwardingEventListenerITCase

parent 327d395e
No related branches found
No related tags found
1 merge request!22Ozg 7501 weiterleitung vorbereiten
...@@ -23,29 +23,35 @@ ...@@ -23,29 +23,35 @@
*/ */
package de.ozgcloud.vorgang.vorgang.redirect; package de.ozgcloud.vorgang.vorgang.redirect;
import static org.assertj.core.api.Assertions.*;
import static org.awaitility.Awaitility.*; import static org.awaitility.Awaitility.*;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource; import org.junit.jupiter.params.provider.EnumSource;
import org.junit.jupiter.params.provider.EnumSource.Mode; import org.junit.jupiter.params.provider.EnumSource.Mode;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.test.context.bean.override.mockito.MockitoBean;
import de.ozgcloud.command.Command; import de.ozgcloud.command.Command;
import de.ozgcloud.common.test.ITCase; import de.ozgcloud.common.test.ITCase;
import de.ozgcloud.nachrichten.email.MailSentEventTestFactory; import de.ozgcloud.nachrichten.email.MailSentEventTestFactory;
import de.ozgcloud.vorgang.command.CommandCreatedEventTestFactory; import de.ozgcloud.vorgang.command.CommandCreatedEventTestFactory;
import de.ozgcloud.vorgang.command.CommandService;
import de.ozgcloud.vorgang.command.CommandTestFactory; import de.ozgcloud.vorgang.command.CommandTestFactory;
import de.ozgcloud.vorgang.command.Order; import de.ozgcloud.vorgang.command.Order;
import de.ozgcloud.vorgang.vorgang.VorgangService; import de.ozgcloud.vorgang.vorgang.VorgangService;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
@ITCase @ITCase
class ForwardingEventListenerITCase { class ForwardingEventListenerITCase {
...@@ -53,15 +59,17 @@ class ForwardingEventListenerITCase { ...@@ -53,15 +59,17 @@ class ForwardingEventListenerITCase {
@Autowired @Autowired
private ApplicationEventPublisher publisher; private ApplicationEventPublisher publisher;
@MockBean @MockitoBean
private ForwardingService service; private ForwardingService service;
@MockBean @MockitoBean
private JavaMailSender mailSender; private JavaMailSender mailSender;
@MockBean @MockitoBean
private VorgangService vorgangService; private VorgangService vorgangService;
@MockitoBean
private CommandService commandService;
@Nested @Nested
class TestForwardVorgang { class TestRedirectdVorgang {
@Test @Test
void shouldCallForwardingService() { void shouldCallForwardingService() {
...@@ -109,4 +117,45 @@ class ForwardingEventListenerITCase { ...@@ -109,4 +117,45 @@ class ForwardingEventListenerITCase {
} }
} }
@Nested
class TestForwardVorgang {
private Command command = CommandTestFactory.createBuilder().order(Order.FORWARD_VORGANG.name()).build();
@Captor
private ArgumentCaptor<ForwardingRequest> requestCaptor;
@BeforeEach
void init() {
when(vorgangService.getById(any())).thenReturn(VorgangTestFactory.create());
}
@Test
void shouldCallForwardingService() {
publishEvent();
await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(service).forward(requestCaptor.capture()));
assertThat(requestCaptor.getValue().getVorgangId()).isEqualTo(command.getVorgangId());
}
@Test
void shouldSetCommandFinished() {
publishEvent();
await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(commandService).setCommandFinished(command.getId(), null));
}
@Test
void shouldSetCommandFailed() {
doThrow(RuntimeException.class).when(service).forward(any());
publishEvent();
await().atMost(5, TimeUnit.SECONDS).untilAsserted(() -> verify(commandService).setCommandError(eq(command.getId()), any()));
}
private void publishEvent() {
publisher.publishEvent(CommandCreatedEventTestFactory.create(command));
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment