diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml index a677b1309ab26013fa6169cd201395af48d2d4f1..7f7af9dc8d9c4cfb99298894fc41faf40fe261f2 100644 --- a/bescheid-manager/pom.xml +++ b/bescheid-manager/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>4.5.0</version> + <version>4.6.0-SNAPSHOT</version> <relativePath /> </parent> diff --git a/vorgang-manager-base/pom.xml b/vorgang-manager-base/pom.xml index eb2a2716b49b827ecadd7fbbe7b8bd7486d83024..4cc87cf289c341e8c590efc4141ab1ddd47570e5 100644 --- a/vorgang-manager-base/pom.xml +++ b/vorgang-manager-base/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>4.5.0</version> + <version>4.6.0-SNAPSHOT</version> <relativePath /> </parent> diff --git a/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/CallContextHandleInterceptorTest.java b/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/CallContextHandleInterceptorTest.java index 7da69943951ca8f20abf4d5daf4c1c222d03a4d7..637608f8fdd521713691226b01175711485b817f 100644 --- a/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/CallContextHandleInterceptorTest.java +++ b/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/CallContextHandleInterceptorTest.java @@ -23,7 +23,6 @@ */ package de.ozgcloud.vorgang.callcontext; -import static de.ozgcloud.common.grpc.GrpcUtil.*; import static de.ozgcloud.vorgang.callcontext.CallContextHandleInterceptor.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; @@ -37,6 +36,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.springframework.security.core.context.SecurityContextHolder; +import de.ozgcloud.common.grpc.GrpcUtil; import de.ozgcloud.vorgang.callcontext.CallContextHandleInterceptor.LogContextSettingListener; import io.grpc.Metadata; import io.grpc.ServerCall; @@ -70,7 +70,7 @@ class CallContextHandleInterceptorTest { @Test void shouldReturnNewRequestIdIfNoGiven() { - headers.removeAll(createKeyOf(KEY_REQUEST_ID)); + headers.removeAll(GrpcUtil.createKeyOf(GrpcUtil.KEY_REQUEST_ID)); var reqId = listener.getRequestId(); @@ -92,7 +92,7 @@ class CallContextHandleInterceptorTest { @Test void shouldFillOrgaIdCollection() { Metadata metadata = CallContextTestFactory.createMetadata(); - metadata.put(createKeyOf(KEY_ACCESS_LIMITED_ORGAID), "orgaid_2".getBytes()); + metadata.put(GrpcUtil.createKeyOf(KEY_ACCESS_LIMITED_ORGAID), "orgaid_2".getBytes()); var user = buildListener(metadata).createUser(); @@ -102,7 +102,7 @@ class CallContextHandleInterceptorTest { @Test void shouldFillEmptyListIfNoOrgaIds() { Metadata metadata = CallContextTestFactory.createMetadata(); - metadata.removeAll(createKeyOf(KEY_ACCESS_LIMITED_ORGAID)); + metadata.removeAll(GrpcUtil.createKeyOf(KEY_ACCESS_LIMITED_ORGAID)); var user = buildListener(metadata).createUser(); @@ -125,7 +125,7 @@ class CallContextHandleInterceptorTest { @Test void shouldMapFalseIfKeyIsNotPresent() { var metadata = CallContextTestFactory.createMetadata(); - metadata.removeAll(createKeyOf(KEY_ACCESS_LIMITED)); + metadata.removeAll(GrpcUtil.createKeyOf(KEY_ACCESS_LIMITED)); var user = buildListener(metadata).createUser(); diff --git a/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/VorgangManagerClientCallContextAttachingInterceptorTest.java b/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/VorgangManagerClientCallContextAttachingInterceptorTest.java index e3ee4977f1e8d6f50c6971a8062d7a4e8d2d69fe..387f8ab34cfe369344c09293f94632c6a57d08cd 100644 --- a/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/VorgangManagerClientCallContextAttachingInterceptorTest.java +++ b/vorgang-manager-base/src/test/java/de/ozgcloud/vorgang/callcontext/VorgangManagerClientCallContextAttachingInterceptorTest.java @@ -23,7 +23,6 @@ */ package de.ozgcloud.vorgang.callcontext; -import static de.ozgcloud.common.grpc.GrpcUtil.*; import static de.ozgcloud.vorgang.callcontext.VorgangManagerClientCallContextAttachingInterceptor.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; @@ -37,6 +36,7 @@ import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; +import de.ozgcloud.common.grpc.GrpcUtil; import io.grpc.CallOptions; import io.grpc.Channel; import io.grpc.ClientCall; @@ -76,14 +76,14 @@ class VorgangManagerClientCallContextAttachingInterceptorTest { void shouldAddClientName() { var addedMetadata = interceptCall(); - assertThat(addedMetadata.get(createKeyOf(KEY_CLIENT_NAME))).isEqualTo(VORGANG_MANAGER_CLIENT_NAME.getBytes()); + assertThat(addedMetadata.get(GrpcUtil.createKeyOf(KEY_CLIENT_NAME))).isEqualTo(VORGANG_MANAGER_CLIENT_NAME.getBytes()); } @Test void shouldAddRequestId() { var addedMetadata = interceptCall(); - assertThat(addedMetadata.get(createKeyOf(KEY_REQUEST_ID))).isNotNull(); + assertThat(addedMetadata.get(GrpcUtil.createKeyOf(GrpcUtil.KEY_REQUEST_ID))).isNotNull(); } private Metadata interceptCall() { diff --git a/vorgang-manager-command/pom.xml b/vorgang-manager-command/pom.xml index 0dc8f2f750e5b4e4de4c4855ada0ec9bd6fd2041..5a1b13e711b3260ca922a2f2a637036c94565b5d 100644 --- a/vorgang-manager-command/pom.xml +++ b/vorgang-manager-command/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-dependencies</artifactId> - <version>4.5.0</version> + <version>4.6.0-SNAPSHOT</version> <relativePath/> </parent> diff --git a/vorgang-manager-interface/pom.xml b/vorgang-manager-interface/pom.xml index a03f469c711f6f5003d4c33cfe15ed59fa515fc6..8b00a8521a80ba394acd6c6e9f8cd804cc58ab0c 100644 --- a/vorgang-manager-interface/pom.xml +++ b/vorgang-manager-interface/pom.xml @@ -30,7 +30,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-dependencies</artifactId> - <version>4.5.0</version> + <version>4.6.0-SNAPSHOT</version> <relativePath/> </parent> diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml index d83e030efed2ef379e837bfa3326142d8fefdcbd..00d58f24c70a88341af6a00a4dddc648d6d3e7fc 100644 --- a/vorgang-manager-server/pom.xml +++ b/vorgang-manager-server/pom.xml @@ -32,7 +32,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>4.5.0</version> + <version>4.6.0-SNAPSHOT</version> <relativePath /> </parent> diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerITCase.java index 5a6a85a956c1400159f302a3762601163aa75ba7..922a438b39d48b3603f82e4ea19e88b000afe3f4 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerITCase.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/archive/ArchiveManagerITCase.java @@ -24,8 +24,12 @@ package de.ozgcloud.archive; import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.fail; import static org.mockito.Mockito.*; +import java.io.ByteArrayOutputStream; +import java.io.IOException; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -36,23 +40,31 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; +import com.google.protobuf.ByteString; + import de.ozgcloud.archive.attributes.ClientAttributeService; import de.ozgcloud.archive.common.callcontext.CallContextProvider; import de.ozgcloud.archive.common.callcontext.CallContextUser; +import de.ozgcloud.archive.grpc.export.ExportServiceGrpc.ExportServiceBlockingStub; +import de.ozgcloud.archive.grpc.export.GrpcExportVorgangRequest; import de.ozgcloud.command.CommandStatus; import de.ozgcloud.common.test.DataITCase; import de.ozgcloud.vorgang.VorgangManagerServerApplication; +import de.ozgcloud.vorgang.callcontext.TestCallContextAttachingInterceptor; import de.ozgcloud.vorgang.callcontext.WithMockCustomUser; import de.ozgcloud.vorgang.clientattribute.ClientAttribute; import de.ozgcloud.vorgang.command.CommandService; import de.ozgcloud.vorgang.command.CreateCommandRequest; +import de.ozgcloud.vorgang.vorgang.EingangTestFactory; import de.ozgcloud.vorgang.vorgang.Vorgang; import de.ozgcloud.vorgang.vorgang.VorgangService; import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; +import net.devh.boot.grpc.client.inject.GrpcClient; @SpringBootTest(classes = VorgangManagerServerApplication.class, properties = { "grpc.server.inProcessName=test", "grpc.client.vorgang-manager.address=in-process:test", + "grpc.client.file-manager.address=in-process:test", "grpc.client.ozgcloud-command-manager.address=in-process:test", "grpc.client.inProcess.address=in-process:test", }) @@ -75,12 +87,17 @@ public class ArchiveManagerITCase { @BeforeEach void init() { - vorgang = mongoOperations.save(VorgangTestFactory.createBuilder().id(null).version(0).build()); + mongoOperations.dropCollection(Vorgang.COLLECTION_NAME); } @Nested class TestArchiveVorgang { + @BeforeEach + void init() { + vorgang = mongoOperations.save(VorgangTestFactory.createBuilder().id(null).version(0).build()); + } + @Test void shouldSetArchiveClientAttribute() { commandService.createCommand(buildArchiveVorgangCommand()); @@ -126,4 +143,51 @@ public class ArchiveManagerITCase { } } + @Nested + class TestExportVorgang { + + @GrpcClient("inProcess") + private ExportServiceBlockingStub exportClient; + + @BeforeEach + void init() { + vorgang = mongoOperations.save(buildVorgang()); + } + + @Test + void shouldExportVorgang() { + var result = exportVorgang(); + + assertThat(result.fileName()).endsWith("_Abgabe.Abgabe.0401.xdomea"); + assertThat(result.content()).isNotEmpty(); + } + + private ExportServiceBlockingStub getExportClient() { + return exportClient.withInterceptors(new TestCallContextAttachingInterceptor()); + } + + private Vorgang buildVorgang() { + return VorgangTestFactory.createBuilder().id(null).version(0).clearEingangs() + .eingang(EingangTestFactory.createBuilder().clearRepresentations().clearAttachments().build()) + .build(); + } + + private ExportResult exportVorgang() { + var result = getExportClient().exportVorgang(GrpcExportVorgangRequest.newBuilder().setVorgangId(vorgang.getId()).build()); + var fileName = result.next().getVorgangFile().getFileName(); + var content = new ByteArrayOutputStream(); + while (result.hasNext()) { + ByteString chunkContent = result.next().getVorgangFile().getFileContent(); + try { + content.write(chunkContent.toByteArray()); + } catch (IOException e) { + fail(e); + } + } + return new ExportResult(fileName, content.toByteArray()); + } + + private record ExportResult(String fileName, byte[] content) { + } + } } diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java index f73ea147c5bebaf8475ec0fa9206f26780363d4b..f9080eeb102b8b84a91d883d38aaad7a42397c73 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java @@ -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.*; diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/user/VorgangManagerCallContextAttachingInterceptorTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/user/VorgangManagerCallContextAttachingInterceptorTest.java index 0eaa4b8c19178b93ab64f33186d22a1912e021da..6f42a85854de7e211da2b9f5f87fc4749ec0592d 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/user/VorgangManagerCallContextAttachingInterceptorTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/user/VorgangManagerCallContextAttachingInterceptorTest.java @@ -14,6 +14,7 @@ import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; +import de.ozgcloud.common.grpc.GrpcUtil; import io.grpc.CallOptions; import io.grpc.Channel; import io.grpc.ClientCall; @@ -67,7 +68,7 @@ class VorgangManagerCallContextAttachingInterceptorTest { void shouldAddRequestId() { var addedMetadata = interceptCall(); - assertThat(addedMetadata.get(createKeyOf(KEY_REQUEST_ID))).isNotNull(); + assertThat(addedMetadata.get(createKeyOf(GrpcUtil.KEY_REQUEST_ID))).isNotNull(); } private Metadata interceptCall() { diff --git a/vorgang-manager-utils/pom.xml b/vorgang-manager-utils/pom.xml index 9d550a13a5cc83bb2b13f4dd39290e5718c0f685..e08f2443de00fdea8213bcb51b4dfffdc96b04be 100644 --- a/vorgang-manager-utils/pom.xml +++ b/vorgang-manager-utils/pom.xml @@ -30,7 +30,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-dependencies</artifactId> - <version>4.5.0</version> + <version>4.6.0-SNAPSHOT</version> <relativePath/> </parent>