Skip to content
Snippets Groups Projects
Commit 4f161be1 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-5322 [test] command fails when no document processor configured

parent 359bcb16
No related branches found
No related tags found
No related merge requests found
......@@ -15,6 +15,7 @@ import lombok.extern.log4j.Log4j2;
@Log4j2
class BescheidService {
// TODO: Fehlernachricht anpassen
private static final String ERROR_MESSAGE_NO_SERVICE = "'CREATE_BESCHEID' Command received but no Bescheid Endpoint is configured.";
@Autowired
......@@ -24,7 +25,7 @@ class BescheidService {
@PostConstruct
void logStatus() {
if (Objects.isNull(ERROR_MESSAGE_NO_SERVICE)) {
if (Objects.isNull(remoteService)) {
LOG.info("No BescheidRemoteService configured - Bescheid creation is not possible.");
} else {
LOG.info("Bescheid-Manager is configured.");
......
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.bescheid;
import static de.ozgcloud.bescheid.BescheidEventListener.*;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.awaitility.Awaitility;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.test.annotation.DirtiesContext;
import de.ozgcloud.bescheid.common.callcontext.CurrentUserService;
import de.ozgcloud.command.Command;
import de.ozgcloud.command.CommandCreatedEvent;
import de.ozgcloud.command.CommandFailedEvent;
import de.ozgcloud.common.test.ITCase;
import de.ozgcloud.vorgang.VorgangManagerServerApplication;
import de.ozgcloud.vorgang.command.CommandTestFactory;
public class BescheidDocumentITCase {
@Nested
@SpringBootTest(classes = VorgangManagerServerApplication.class)
@ITCase
@DirtiesContext
class TestDocumentProzessorNotConfigured {
@Autowired
private ApplicationEventPublisher eventPublisher;
@SpyBean
private BescheidEventListener eventListener;
@SpyBean
private TestEventListener testEventListener;
@MockBean
private CurrentUserService currentUserService;
@Captor
private ArgumentCaptor<CommandFailedEvent> commandFailedEventCaptor;
@Test
void shouldFailWhenNoDocumentProcessor() {
var command = buildCreateDocumentCommand();
eventPublisher.publishEvent(new CommandCreatedEvent(command));
Awaitility.await().atMost(60, TimeUnit.SECONDS).untilAsserted(() -> {
verify(testEventListener).onCommandFailed(commandFailedEventCaptor.capture());
assertThat(commandFailedEventCaptor.getValue().getSource()).isEqualTo(command.getId());
assertThat(commandFailedEventCaptor.getValue().getErrorMessage()).isNotEmpty();
});
}
private Command buildCreateDocumentCommand() {
return CommandTestFactory.createBuilder()
.vorgangId("vorgang-id")
.relationId("bescheidItem-id")
.order(BescheidEventListener.CREATE_BESCHEID_DOCUMENT_ORDER)
.bodyObject(Map.of(BESCHEID_VOM_BODYKEY, "2024-01-01",
GENEHMIGT_BODYKEY, true))
.build();
}
}
}
......@@ -41,7 +41,6 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.event.EventListener;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
......@@ -167,11 +166,4 @@ class BescheidEventListenerITCase {
var fileId = getBescheidDocument().getItem().get(Document.FIELD_DOCUMENT_FILE).toString();
return gridFsTemplate.findOne(Query.query(Criteria.where("_id").is(fileId)));
}
static class TestEventListener {
@EventListener
public void onBescheidDocumentCreated(BescheidDocumentCreatedEvent event) {
}
}
}
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.bescheid;
import org.springframework.context.event.EventListener;
import de.ozgcloud.command.CommandFailedEvent;
import de.ozgcloud.document.BescheidDocumentCreatedEvent;
public class TestEventListener {
@EventListener
public void onBescheidDocumentCreated(BescheidDocumentCreatedEvent event) {
}
@EventListener
public void onCommandFailed(CommandFailedEvent event) {
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment