From f2c95bc4ae5e6f8de11cd7e40f613478bfd36b8e Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Fri, 5 Apr 2024 13:24:56 +0200 Subject: [PATCH] OZG-5237 Moved buildRequest from ClientAttributeService to ClientAttributeRemoteService --- .gitignore | 1 + .../ClientAttributeRemoteService.java | 24 ++++- .../ClientAttributeService.java | 27 +----- .../ClientAttributeRemoteServiceTest.java | 89 +++++++++++++++++-- .../ClientAttributeServiceTest.java | 48 +--------- 5 files changed, 110 insertions(+), 79 deletions(-) diff --git a/.gitignore b/.gitignore index 892b5f00c8..6a8fd526ec 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ target/ .attach** .factorypath +.vscode* diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java index de6b7301d5..8eef88537c 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteService.java @@ -26,17 +26,37 @@ package de.ozgcloud.alfa.common.clientattribute; import org.springframework.stereotype.Service; import de.ozgcloud.alfa.common.GrpcUtil; +import de.ozgcloud.alfa.common.errorhandling.FunctionalException; import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub; +import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute; +import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttributeValue; import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest; +import lombok.extern.log4j.Log4j2; import net.devh.boot.grpc.client.inject.GrpcClient; @Service +@Log4j2 class ClientAttributeRemoteService { @GrpcClient(GrpcUtil.VORGANG_MANAGER_GRPC_CLIENT) private ClientAttributeServiceBlockingStub service; - void resetPostfachNachricht(GrpcUpdateClientAttributeRequest request) { - service.update(request); + void setBooleanReadOnlyClientAttribute(String vorgangId, String clientName, String attributeName) { + try { + service.update(buildRequest(vorgangId, false, clientName, attributeName)); + } catch (FunctionalException e) { + LOG.error("Error on resetting new Postfachnachrichten.", e); + } } + GrpcUpdateClientAttributeRequest buildRequest(String vorgangId, boolean value, String clientName, String attributeName) { + return GrpcUpdateClientAttributeRequest.newBuilder() + .setVorgangId(vorgangId) + .setAttribute( + GrpcClientAttribute.newBuilder().setValue( + GrpcClientAttributeValue.newBuilder().setBoolValue(value).build()) + .setClientName(clientName) + .setAttributeName(attributeName) + .build()) + .build(); + } } diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java index b64a40cab9..474d1f8236 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeService.java @@ -23,40 +23,21 @@ */ package de.ozgcloud.alfa.common.clientattribute; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttribute; -import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcClientAttributeValue; -import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest; +import lombok.RequiredArgsConstructor; @Service +@RequiredArgsConstructor public class ClientAttributeService { public static final String HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME = "hasNewPostfachNachricht"; static final String ORIGINAL_CLIENT_NAME = "OzgCloud_NachrichtenManager"; - @Autowired - private ClientAttributeRemoteService remoteService; + private final ClientAttributeRemoteService remoteService; public void resetPostfachNachricht(String vorgangId) { - remoteService.resetPostfachNachricht(buildResetNewPostfachNachricht(vorgangId)); - } - - GrpcUpdateClientAttributeRequest buildResetNewPostfachNachricht(String vorgangId) { - return buildRequest(vorgangId, false, HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME); - } - - private GrpcUpdateClientAttributeRequest buildRequest(String vorgangId, boolean value, String attributeName) { - return GrpcUpdateClientAttributeRequest.newBuilder() - .setVorgangId(vorgangId) - .setAttribute( - GrpcClientAttribute.newBuilder().setValue( - GrpcClientAttributeValue.newBuilder().setBoolValue(value).build()) - .setClientName(ORIGINAL_CLIENT_NAME) - .setAttributeName(attributeName) - .build()) - .build(); + remoteService.setBooleanReadOnlyClientAttribute(vorgangId, ORIGINAL_CLIENT_NAME, HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME); } } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java index e655914cae..7d03ee5e50 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeRemoteServiceTest.java @@ -23,32 +23,103 @@ */ package de.ozgcloud.alfa.common.clientattribute; +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import de.ozgcloud.alfa.common.errorhandling.FunctionalException; +import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; import de.ozgcloud.vorgang.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub; +import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest; class ClientAttributeRemoteServiceTest { - @Nested - class TestResetNewPostfachNachricht { - @Spy - @InjectMocks - private ClientAttributeRemoteService service; + private static final String CLIENT_NAME = "OzgCloud_NachrichtenManager"; + private static final String ATTRIBUTE = "hasNewPostfachNachricht"; + + @Spy + @InjectMocks + private ClientAttributeRemoteService service; + + @Mock + private ClientAttributeServiceBlockingStub serviceStub; - @Mock - private ClientAttributeServiceBlockingStub serviceStub; + @Mock + private GrpcUpdateClientAttributeRequest request; + + @Nested + class TestSetBooleanReadOnlyClientAttribute { + @BeforeEach + void mockBuildRequest() { + doReturn(request).when(service).buildRequest(VorgangHeaderTestFactory.ID, false, CLIENT_NAME, ATTRIBUTE); + } @Test void shouldCallServiceStub() { - service.resetPostfachNachricht(any()); + callSetBooleanReadOnlyClientAttribute(); + + verify(serviceStub).update(request); + } + + @Test + void shouldCatchFunctionalException() { + when(serviceStub.update(any())).thenThrow(new FunctionalException(() -> "Error")); + + assertDoesNotThrow(() -> callSetBooleanReadOnlyClientAttribute()); + } + + private void callSetBooleanReadOnlyClientAttribute() { + service.setBooleanReadOnlyClientAttribute(VorgangHeaderTestFactory.ID, CLIENT_NAME, ATTRIBUTE); + } + } + + @Nested + class TestBuildRequest { + @Test + void shouldHaveAttribute() { + GrpcUpdateClientAttributeRequest request = callBuildRequest(); + + assertThat(request.getAttribute()).isNotNull(); + } + + @Test + void shouldHaveVorgangId() { + GrpcUpdateClientAttributeRequest request = callBuildRequest(); + + assertThat(request.getVorgangId()).isEqualTo(VorgangHeaderTestFactory.ID); + } + + @Test + void shouldHaveAttributeName() { + GrpcUpdateClientAttributeRequest request = callBuildRequest(); + + assertThat(request.getAttribute().getAttributeName()).isEqualTo(ClientAttributeService.HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME); + } + + @Test + void shouldHaveClientName() { + GrpcUpdateClientAttributeRequest request = callBuildRequest(); + + assertThat(request.getAttribute().getClientName()).isEqualTo(ClientAttributeService.ORIGINAL_CLIENT_NAME); + } + + @Test + void shouldHaveAttributeValue() { + GrpcUpdateClientAttributeRequest request = callBuildRequest(); + + assertThat(request.getAttribute().getValue()).isNotNull(); + assertThat(request.getAttribute().getValue().getBoolValue()).isFalse(); + } - verify(serviceStub).update(any()); + private GrpcUpdateClientAttributeRequest callBuildRequest() { + return service.buildRequest(VorgangHeaderTestFactory.ID, false, CLIENT_NAME, ATTRIBUTE); } } } diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java index a64de0d45b..7aa09d2fd3 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/clientattribute/ClientAttributeServiceTest.java @@ -23,8 +23,6 @@ */ package de.ozgcloud.alfa.common.clientattribute; -import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import org.junit.jupiter.api.Nested; @@ -34,12 +32,11 @@ import org.mockito.Mock; import org.mockito.Spy; import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; -import de.ozgcloud.vorgang.grpc.clientAttribute.GrpcUpdateClientAttributeRequest; class ClientAttributeServiceTest { @Spy @InjectMocks - private ClientAttributeService service = new ClientAttributeService(); + private ClientAttributeService service; @Mock private ClientAttributeRemoteService remoteService; @@ -49,47 +46,8 @@ class ClientAttributeServiceTest { void shouldCallRemoteService() { service.resetPostfachNachricht(VorgangHeaderTestFactory.ID); - verify(remoteService).resetPostfachNachricht(any()); - } - } - - @Nested - class BuildRequest { - - @Test - void shouldHaveAttribute() { - GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID); - - assertThat(request.getAttribute()).isNotNull(); - } - - @Test - void shouldHaveVorgangId() { - GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID); - - assertThat(request.getVorgangId()).isEqualTo(VorgangHeaderTestFactory.ID); - } - - @Test - void shouldHaveAttributeName() { - GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID); - - assertThat(request.getAttribute().getAttributeName()).isEqualTo(ClientAttributeService.HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME); - } - - @Test - void shouldHaveClientName() { - GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID); - - assertThat(request.getAttribute().getClientName()).isEqualTo(ClientAttributeService.ORIGINAL_CLIENT_NAME); - } - - @Test - void shouldHaveAttributeValue() { - GrpcUpdateClientAttributeRequest request = service.buildResetNewPostfachNachricht(VorgangHeaderTestFactory.ID); - - assertThat(request.getAttribute().getValue()).isNotNull(); - assertThat(request.getAttribute().getValue().getBoolValue()).isFalse(); + verify(remoteService).setBooleanReadOnlyClientAttribute(VorgangHeaderTestFactory.ID, ClientAttributeService.ORIGINAL_CLIENT_NAME, + ClientAttributeService.HAS_NEW_POSTFACH_NACHRICHT_ATTRIBUTE_NAME); } } } -- GitLab