Skip to content
Snippets Groups Projects

Ozg 7501 weiterleitung vorbereiten

Merged Krzysztof Witukiewicz requested to merge OZG-7501-weiterleitung-vorbereiten into main
2 unresolved threads
1 file
+ 54
5
Compare changes
  • Side-by-side
  • Inline
@@ -23,29 +23,35 @@
*/
package de.ozgcloud.vorgang.vorgang.redirect;
import static org.assertj.core.api.Assertions.*;
import static org.awaitility.Awaitility.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import java.util.concurrent.TimeUnit;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.EnumSource;
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.boot.test.mock.mockito.MockBean;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.test.context.bean.override.mockito.MockitoBean;
import de.ozgcloud.command.Command;
import de.ozgcloud.common.test.ITCase;
import de.ozgcloud.nachrichten.email.MailSentEventTestFactory;
import de.ozgcloud.vorgang.command.CommandCreatedEventTestFactory;
import de.ozgcloud.vorgang.command.CommandService;
import de.ozgcloud.vorgang.command.CommandTestFactory;
import de.ozgcloud.vorgang.command.Order;
import de.ozgcloud.vorgang.vorgang.VorgangService;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
@ITCase
class ForwardingEventListenerITCase {
@@ -53,15 +59,17 @@ class ForwardingEventListenerITCase {
@Autowired
private ApplicationEventPublisher publisher;
@MockBean
@MockitoBean
private ForwardingService service;
@MockBean
@MockitoBean
private JavaMailSender mailSender;
@MockBean
@MockitoBean
private VorgangService vorgangService;
@MockitoBean
private CommandService commandService;
@Nested
class TestForwardVorgang {
class TestRedirectdVorgang {
@Test
void shouldCallForwardingService() {
@@ -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));
}
}
}
Loading