diff --git a/.gitignore b/.gitignore index 892b5f00c80bb5552fb41b42e67d90dabf7bdc7e..6a8fd526ec8c6c600fd616bca2a7893d2dee5d3e 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 de6b7301d5cf04f7ddcb2779a90397cf97103fce..8eef88537cb6531e47ee8f012576ade2725c7a52 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 b64a40cab936be2d548e684e8e54e316b4b0eafc..474d1f82362fbb360c6b593e5b85ccfe05090400 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 e655914cae2c9abfd0ec2dfe8cea3a2e669ba404..7d03ee5e50e176fb942836fcb5fc9b6942be5184 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 a64de0d45bb61878de179263dc4a345206feefa0..7aa09d2fd336242a4e040febd154db99e45a5f78 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); } } }