From 3f28c5a9d3a4348d4ae6cb746e5833263361749d Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 25 Apr 2024 12:40:56 +0200 Subject: [PATCH] OZG-5167: bind grpc call --- .../alfa/bescheid/BescheidRemoteService.java | 5 ++- .../bescheid/BescheidRemoteServiceTest.java | 40 +++++++++++++++++++ ...scheidManagerConfigRequestTestFactory.java | 14 +++++++ ...cheidManagerConfigResponseTestFactory.java | 18 +++++++++ ...rpcBescheidManagerFeaturesTestFactory.java | 16 ++++++++ pom.xml | 2 +- 6 files changed, 92 insertions(+), 3 deletions(-) create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigRequestTestFactory.java create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerFeaturesTestFactory.java diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java index 5050e20b40..52a882303b 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidRemoteService.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import de.ozgcloud.alfa.common.GrpcUtil; import de.ozgcloud.bescheid.BescheidServiceGrpc.BescheidServiceBlockingStub; import de.ozgcloud.bescheid.GrpcBescheid; +import de.ozgcloud.bescheid.GrpcBescheidManagerConfigRequest; import de.ozgcloud.bescheid.GrpcGetBescheidDraftRequest; import de.ozgcloud.bescheid.GrpcGetBescheidDraftResponse; import net.devh.boot.grpc.client.inject.GrpcClient; @@ -37,7 +38,7 @@ class BescheidRemoteService { } public boolean canCreateBescheidDocument() { - // TODO: waiting for OZG-5585 - return true; + var response = bescheidServiceStub.getConfig(GrpcBescheidManagerConfigRequest.newBuilder().build()); + return response.hasFeatures() && response.getFeatures().getCanCreateBescheidDocument(); } } \ No newline at end of file diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java index 07da3f1e48..d08fe3d917 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidRemoteServiceTest.java @@ -14,6 +14,8 @@ import org.mockito.Spy; import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; import de.ozgcloud.bescheid.BescheidServiceGrpc.BescheidServiceBlockingStub; +import de.ozgcloud.bescheid.GrpcBescheidManagerConfigRequest; +import de.ozgcloud.bescheid.GrpcBescheidManagerConfigResponse; import de.ozgcloud.bescheid.GrpcGetBescheidDraftRequest; import de.ozgcloud.bescheid.GrpcGetBescheidDraftResponse; @@ -122,12 +124,50 @@ class BescheidRemoteServiceTest { @Nested class TestCanCreateBescheidDocument { + private final GrpcBescheidManagerConfigRequest request = GrpcBescheidManagerConfigRequestTestFactory.create(); + private final GrpcBescheidManagerConfigResponse respone = GrpcBescheidManagerConfigResponseTestFactory.create(); + + @BeforeEach + void setUp() { + when(bescheidServiceStub.getConfig(request)).thenReturn(respone); + } + + @Test + void shouldCallRemoteService() { + service.canCreateBescheidDocument(); + + verify(bescheidServiceStub).getConfig(request); + } + @Test void shouldReturnTrue() { var canCreate = service.canCreateBescheidDocument(); assertThat(canCreate).isTrue(); } + + @Test + void shouldReturnFalseIfNoFeaturesAvailable() { + when(bescheidServiceStub.getConfig(request)).thenReturn(GrpcBescheidManagerConfigResponseTestFactory.empty()); + + var canCreate = service.canCreateBescheidDocument(); + + assertThat(canCreate).isFalse(); + } + + @Test + void shouldReturnFalseIfFeatureDisabled() { + var respones = GrpcBescheidManagerConfigResponseTestFactory.createBuilder() + .setFeatures(GrpcBescheidManagerFeaturesTestFactory.createBuilder() + .setCanCreateBescheidDocument(false) + .build()) + .build(); + when(bescheidServiceStub.getConfig(request)).thenReturn(respones); + + var canCreate = service.canCreateBescheidDocument(); + + assertThat(canCreate).isFalse(); + } } } \ No newline at end of file diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigRequestTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigRequestTestFactory.java new file mode 100644 index 0000000000..b3b7518632 --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigRequestTestFactory.java @@ -0,0 +1,14 @@ +package de.ozgcloud.alfa.bescheid; + +import de.ozgcloud.bescheid.GrpcBescheidManagerConfigRequest; + +public class GrpcBescheidManagerConfigRequestTestFactory { + + public static GrpcBescheidManagerConfigRequest create() { + return createBuilder().build(); + } + + public static GrpcBescheidManagerConfigRequest.Builder createBuilder() { + return GrpcBescheidManagerConfigRequest.newBuilder(); + } +} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java new file mode 100644 index 0000000000..d15b8aea1d --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerConfigResponseTestFactory.java @@ -0,0 +1,18 @@ +package de.ozgcloud.alfa.bescheid; + +import de.ozgcloud.bescheid.GrpcBescheidManagerConfigResponse; + +public class GrpcBescheidManagerConfigResponseTestFactory { + + public static GrpcBescheidManagerConfigResponse empty() { + return GrpcBescheidManagerConfigResponse.newBuilder().build(); + } + + public static GrpcBescheidManagerConfigResponse create() { + return createBuilder().build(); + } + + public static GrpcBescheidManagerConfigResponse.Builder createBuilder() { + return GrpcBescheidManagerConfigResponse.newBuilder().setFeatures(GrpcBescheidManagerFeaturesTestFactory.create()); + } +} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerFeaturesTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerFeaturesTestFactory.java new file mode 100644 index 0000000000..fc745ca20b --- /dev/null +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/GrpcBescheidManagerFeaturesTestFactory.java @@ -0,0 +1,16 @@ +package de.ozgcloud.alfa.bescheid; + +import de.ozgcloud.bescheid.GrpcBescheidManagerFeatures; + +public class GrpcBescheidManagerFeaturesTestFactory { + + public static final boolean CAN_CREATE_BESCHEID = true; + + public static GrpcBescheidManagerFeatures create() { + return createBuilder().build(); + } + + public static GrpcBescheidManagerFeatures.Builder createBuilder() { + return GrpcBescheidManagerFeatures.newBuilder().setCanCreateBescheidDocument(CAN_CREATE_BESCHEID); + } +} diff --git a/pom.xml b/pom.xml index b061f02e10..7986fc9ca3 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <vorgang-manager.version>2.6.0</vorgang-manager.version> + <vorgang-manager.version>2.7.0-SNAPSHOT</vorgang-manager.version> <ozgcloud-common-pdf.version>3.0.1</ozgcloud-common-pdf.version> <user-manager.version>2.2.0</user-manager.version> -- GitLab