Skip to content
Snippets Groups Projects
Commit 243c1d5f authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6523 update dependencies; extend tests

parent 88db95b0
Branches
Tags
No related merge requests found
......@@ -17,7 +17,7 @@
<properties>
<vorgang-manager.version>2.13.0</vorgang-manager.version>
<nachrichten-manager.version>2.9.0</nachrichten-manager.version>
<api-lib.version>0.11.0</api-lib.version>
<api-lib.version>0.12.0</api-lib.version>
</properties>
<dependencies>
......
......@@ -53,12 +53,12 @@
<zufi-manager-interface.version>1.0.0</zufi-manager-interface.version>
<user-manager-interface.version>2.1.0</user-manager-interface.version>
<bescheid-manager.version>1.17.0</bescheid-manager.version>
<bescheid-manager.version>1.18.0-SNAPSHOT</bescheid-manager.version>
<processor-manager.version>0.4.1</processor-manager.version>
<nachrichten-manager.version>2.11.0</nachrichten-manager.version>
<ozgcloud-starter.version>0.10.0</ozgcloud-starter.version>
<ozgcloud-starter.version>0.12.0</ozgcloud-starter.version>
<notification-manager.version>2.10.0</notification-manager.version>
<collaboration-manager.version>0.2.0</collaboration-manager.version>
<collaboration-manager.version>0.3.0-PR-5-SNAPSHOT</collaboration-manager.version>
<zip.version>2.11.1</zip.version>
<jsoup.version>1.15.3</jsoup.version>
......
......@@ -24,7 +24,6 @@
package de.ozgcloud.vorgang.collaboration;
import static org.assertj.core.api.Assertions.*;
import static org.assertj.core.api.InstanceOfAssertFactories.*;
import static org.awaitility.Awaitility.*;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.ArgumentMatchers.*;
......@@ -41,6 +40,8 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.Mock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
......@@ -60,7 +61,11 @@ import de.ozgcloud.collaboration.CollaborationServiceGrpc.CollaborationServiceBl
import de.ozgcloud.collaboration.GrpcGetFileContentRequest;
import de.ozgcloud.command.Command;
import de.ozgcloud.command.CommandStatus;
import de.ozgcloud.common.errorhandling.TechnicalException;
import de.ozgcloud.common.test.DataITCase;
import de.ozgcloud.nachrichten.postfach.PostfachAddress;
import de.ozgcloud.nachrichten.postfach.PostfachNachricht;
import de.ozgcloud.nachrichten.postfach.PostfachRemoteService;
import de.ozgcloud.vorgang.attached_item.VorgangAttachedItem;
import de.ozgcloud.vorgang.callcontext.CallContext;
import de.ozgcloud.vorgang.callcontext.TestCallContextAttachingInterceptor;
......@@ -71,6 +76,7 @@ import de.ozgcloud.vorgang.command.CreateCommandRequest;
import de.ozgcloud.vorgang.files.FileService;
import de.ozgcloud.vorgang.files.GridFsTestFactory;
import de.ozgcloud.vorgang.files.OzgFileTestFactory;
import de.ozgcloud.vorgang.servicekonto.PostfachAddressTestFactory;
import de.ozgcloud.vorgang.vorgang.Vorgang;
import de.ozgcloud.vorgang.vorgang.VorgangHead;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
......@@ -89,6 +95,10 @@ import net.devh.boot.grpc.client.inject.GrpcClient;
@DirtiesContext
class CollaborationITCase {
private static final String FIELD_COLLABORATION_VORGANG_ID = "collaborationVorgangId";
private static final String TITEL = "Collaboration Vorgang";
private static final String ANFRAGE = "Anfrage";
@Autowired
private CommandService commandService;
......@@ -97,56 +107,24 @@ class CollaborationITCase {
@MockBean
private OzgCloudUserProfileService ozgCloudUserProfileService;
@MockBean
private PostfachRemoteService postfachRemoteService;
@Mock
private OzgCloudUserProfile ozgCloudUserProfile;
@Nested
class TestCreateCollaborationVorgang {
private String vorgangId;
@BeforeEach
void init() {
mongoOperations.dropCollection(Command.class);
mongoOperations.dropCollection(Vorgang.class);
mongoOperations.dropCollection(VorgangAttachedItem.class);
when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
when(ozgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
vorgangId = mongoOperations.save(VorgangTestFactory.createBuilder().id(null).version(0L).build()).getId();
}
private static final String FIELD_COLLABORATION_VORGANG_ID = "collaborationVorgangId";
private static final String TITEL = "Collaboration Vorgang";
private static final String ANFRAGE = "Anfrage";
private String vorgangId;
@Test
void shouldSetCollaborationVorgangId() {
var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId));
waitUntilCommandFinished(command.getId());
var collaborationRequests = loadCollaborationRequest(vorgangId);
assertThat(collaborationRequests).hasSize(1).first().extracting(VorgangAttachedItem::getItem, MAP)
.containsKey(FIELD_COLLABORATION_VORGANG_ID);
}
@Test
void shouldCreateCollaborationVorgang() {
var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId));
waitUntilCommandFinished(command.getId());
var collaborationVorgang = loadCollaborationVorgang(vorgangId);
assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getCollaborationLevel)
.isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getOrganisationsEinheitId)
.isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
assertThat(collaborationVorgang.getClientAttributes()).isEmpty();
}
private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId) {
private CreateCommandRequest buildCreateCollaborationVorgangCommand(String vorgangId, int collaborationLevel) {
return CreateCommandRequest.builder()
.callContext(CallContext.builder().client("test").build())
.vorgangId(vorgangId)
......@@ -155,29 +133,11 @@ class CollaborationITCase {
.bodyObject(Map.of(
"titel", TITEL,
"anfrage", ANFRAGE,
"collaborationLevel", collaborationLevel,
"zustaendigeStelle", ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID))
.build();
}
private void waitUntilCommandFinished(String commandId) {
await().atMost(60, TimeUnit.SECONDS).until(
() -> mongoOperations.findById(commandId, Command.class),
command -> command.getStatus() == CommandStatus.FINISHED);
}
private Vorgang loadCollaborationVorgang(String sourceVorgangId) {
var collaborationVorgangId = loadCollaborationRequest(sourceVorgangId).getFirst().getItem().get(FIELD_COLLABORATION_VORGANG_ID);
return mongoOperations.findById(collaborationVorgangId, Vorgang.class);
}
private List<VorgangAttachedItem> loadCollaborationRequest(String vorgangId) {
var query = new Query(new Criteria().andOperator(
Criteria.where(VorgangAttachedItem.FIELDNAME_VORGANG_ID).is(vorgangId),
Criteria.where(VorgangAttachedItem.FIELDNAME_ITEM_NAME).is("CollaborationRequest")));
return mongoOperations.find(query, VorgangAttachedItem.class);
}
}
@DisplayName("Get file content")
@Nested
class TestGetFileContent {
......@@ -244,4 +204,110 @@ class CollaborationITCase {
return collaborationStub.withInterceptors(new TestCallContextAttachingInterceptor());
}
}
private List<VorgangAttachedItem> loadCollaborationRequest(String vorgangId) {
var query = new Query(new Criteria().andOperator(
Criteria.where(VorgangAttachedItem.FIELDNAME_VORGANG_ID).is(vorgangId),
Criteria.where(VorgangAttachedItem.FIELDNAME_ITEM_NAME).is("CollaborationRequest")));
return mongoOperations.find(query, VorgangAttachedItem.class);
}
private void waitUntilCommandFinished(String commandId) {
await().atMost(60, TimeUnit.SECONDS).until(
() -> mongoOperations.findById(commandId, Command.class),
command -> command.getStatus() == CommandStatus.FINISHED);
}
private void waitUntilCommandError(String commandId) {
await().atMost(60, TimeUnit.SECONDS).until(
() -> mongoOperations.findById(commandId, Command.class),
command -> command.getStatus() == CommandStatus.ERROR);
}
@Nested
class TestCreateCollaborationVorgang {
@BeforeEach
void init() {
when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
when(ozgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
}
@Test
void shouldSetCollaborationVorgangId() {
var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 1));
waitUntilCommandFinished(command.getId());
var collaborationRequests = loadCollaborationRequest(vorgangId);
assertThat(collaborationRequests).hasSize(1).first().extracting(VorgangAttachedItem::getItem, MAP)
.containsKey(FIELD_COLLABORATION_VORGANG_ID);
}
@Test
void shouldCreateCollaborationVorgang() {
var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 1));
waitUntilCommandFinished(command.getId());
var collaborationVorgang = loadCollaborationVorgang(vorgangId);
assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getCollaborationLevel)
.isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL);
assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getOrganisationsEinheitId)
.isEqualTo(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID);
assertThat(collaborationVorgang.getClientAttributes()).isEmpty();
}
private Vorgang loadCollaborationVorgang(String sourceVorgangId) {
var collaborationVorgangId = loadCollaborationRequest(sourceVorgangId).getFirst().getItem().get(FIELD_COLLABORATION_VORGANG_ID);
return mongoOperations.findById(collaborationVorgangId, Vorgang.class);
}
}
@Nested
class TestCreateFachstellenBeteiligungRequest {
@Captor
private ArgumentCaptor<PostfachNachricht> postfachMailCaptor;
@BeforeEach
void init() {
when(ozgCloudUserProfile.getId()).thenReturn(OzgCloudUserId.from(CommandTestFactory.CREATED_BY));
when(ozgCloudUserProfileService.getById(any())).thenReturn(ozgCloudUserProfile);
}
@Test
void shouldCreateCollaborationRequest() {
var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 4));
waitUntilCommandFinished(command.getId());
var collaborationRequests = loadCollaborationRequest(vorgangId);
assertThat(collaborationRequests).hasSize(1).first().extracting(VorgangAttachedItem::getItem, MAP)
.containsEntry(FIELD_COLLABORATION_VORGANG_ID, vorgangId);
}
@Test
void shouldSendPostfachMail() {
var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 4));
waitUntilCommandFinished(command.getId());
verify(postfachRemoteService).sendMessage(postfachMailCaptor.capture());
assertThat(postfachMailCaptor.getValue().getPostfachAddress()).extracting(PostfachAddress::getIdentifier)
.hasToString(PostfachAddressTestFactory.STRING_BASED_IDENTIFIER_POSTFACH_ID_VALUE);
}
@Test
void shouldDeleteCollaborationRequest() {
doThrow(TechnicalException.class).when(postfachRemoteService).sendMessage(any());
var command = commandService.createCommand(buildCreateCollaborationVorgangCommand(vorgangId, 4));
waitUntilCommandError(command.getId());
assertThat(loadCollaborationRequest(vorgangId)).isEmpty();
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment