Skip to content
Snippets Groups Projects
Commit 1e61784d authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6636 move grpc mapping to remote service

parent 13945816
No related branches found
No related tags found
No related merge requests found
...@@ -31,7 +31,6 @@ import java.util.concurrent.TimeUnit; ...@@ -31,7 +31,6 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.google.protobuf.ByteString; import com.google.protobuf.ByteString;
...@@ -55,25 +54,28 @@ import de.ozgcloud.vorgang.vorgang.GrpcIncomingFileGroup; ...@@ -55,25 +54,28 @@ import de.ozgcloud.vorgang.vorgang.GrpcIncomingFileGroup;
import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub; import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
import io.grpc.stub.CallStreamObserver; import io.grpc.stub.CallStreamObserver;
import io.grpc.stub.StreamObserver; import io.grpc.stub.StreamObserver;
import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@Log4j2 @Log4j2
@AllArgsConstructor
@Service @Service
public class VorgangRemoteService { public class VorgangRemoteService {
@Autowired private final VorgangManagerServerResolver vorgangManagerServerResolver;
private VorgangManagerServerResolver vorgangManagerServerResolver;
public String createVorgang(FormData formData, GrpcEingang eingang, Optional<String> organisationsEinheitenId) { private final GrpcEingangMapper grpcEingangMapper;
public String createVorgang(FormData formData, Optional<String> organisationsEinheitenId) {
var vorgangServiceStub = getVorgangServiceStub(organisationsEinheitenId); var vorgangServiceStub = getVorgangServiceStub(organisationsEinheitenId);
var binaryFileServiceStub = getBinaryFileServiceStub(organisationsEinheitenId); var binaryFileServiceStub = getBinaryFileServiceStub(organisationsEinheitenId);
logConnection(organisationsEinheitenId, vorgangServiceStub.get()); logConnection(organisationsEinheitenId, vorgangServiceStub.get());
try { try {
return createVorgang(formData, eingang, vorgangServiceStub.get(), binaryFileServiceStub.get()); return createVorgang(formData, grpcEingangMapper.toEingang(formData), vorgangServiceStub.get(), binaryFileServiceStub.get());
} finally { } finally {
finishStubConnections(List.of(vorgangServiceStub, binaryFileServiceStub)); finishStubConnections(List.of(vorgangServiceStub, binaryFileServiceStub));
} }
......
...@@ -25,25 +25,29 @@ package de.ozgcloud.eingang.router; ...@@ -25,25 +25,29 @@ package de.ozgcloud.eingang.router;
import java.util.Optional; import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle;
import lombok.AllArgsConstructor;
@AllArgsConstructor
@Service @Service
public class VorgangService { public class VorgangService {
@Autowired private final VorgangRemoteService remoteService;
private VorgangRemoteService remoteService;
@Autowired
private GrpcEingangMapper grpcEingangMapper;
public String createVorgang(FormData formData) { public String createVorgang(FormData formData) {
var eingang = grpcEingangMapper.toEingang(formData); var preparedFormData = preserveConsistency(formData);
var organisationsEinheitenId = Optional.ofNullable(formData.getZustaendigeStelle()).map(ZustaendigeStelle::getOrganisationseinheitenId);
return remoteService.createVorgang(preparedFormData, getOrganisationsEinheitId(preparedFormData));
}
private Optional<String> getOrganisationsEinheitId(FormData formData) {
return Optional.ofNullable(formData.getZustaendigeStelle()).map(ZustaendigeStelle::getOrganisationseinheitenId);
}
return remoteService.createVorgang(formData, eingang, organisationsEinheitenId); FormData preserveConsistency(FormData formData) {
return null;
} }
} }
\ No newline at end of file
...@@ -79,6 +79,8 @@ class VorgangRemoteServiceTest { ...@@ -79,6 +79,8 @@ class VorgangRemoteServiceTest {
private VorgangRemoteService remoteService; private VorgangRemoteService remoteService;
@Mock @Mock
private VorgangManagerServerResolver resolver; private VorgangManagerServerResolver resolver;
@Mock
private GrpcEingangMapper eingangMapper;
private VorgangCreator vorgangCreator; private VorgangCreator vorgangCreator;
...@@ -115,6 +117,8 @@ class VorgangRemoteServiceTest { ...@@ -115,6 +117,8 @@ class VorgangRemoteServiceTest {
when(resolver.resolveBinaryFileServiceStubByOrganisationsEinheitId(any())).thenReturn(managableBinaryFileServiceStub); when(resolver.resolveBinaryFileServiceStubByOrganisationsEinheitId(any())).thenReturn(managableBinaryFileServiceStub);
when(managableBinaryFileServiceStub.get()).thenReturn(binaryFileServiceStub); when(managableBinaryFileServiceStub.get()).thenReturn(binaryFileServiceStub);
when(eingangMapper.toEingang(any())).thenReturn(eingang);
doNothing().when(remoteService).logConnection(any(), any()); doNothing().when(remoteService).logConnection(any(), any());
doNothing().when(remoteService).finishStubConnections(any()); doNothing().when(remoteService).finishStubConnections(any());
} }
...@@ -151,6 +155,13 @@ class VorgangRemoteServiceTest { ...@@ -151,6 +155,13 @@ class VorgangRemoteServiceTest {
verify(remoteService).createVorgang(formData, eingang, vorgangServiceStub, binaryFileServiceStub); verify(remoteService).createVorgang(formData, eingang, vorgangServiceStub, binaryFileServiceStub);
} }
@Test
void shouldCallEingangMapper() {
createVorgang();
verify(eingangMapper).toEingang(formData);
}
@Test @Test
void shouldFinishStubConnection() { void shouldFinishStubConnection() {
createVorgang(); createVorgang();
...@@ -192,7 +203,7 @@ class VorgangRemoteServiceTest { ...@@ -192,7 +203,7 @@ class VorgangRemoteServiceTest {
@SneakyThrows @SneakyThrows
private String createVorgang() { private String createVorgang() {
return remoteService.createVorgang(formData, eingang, organisationsEinheitId); return remoteService.createVorgang(formData, organisationsEinheitId);
} }
} }
......
...@@ -23,24 +23,25 @@ ...@@ -23,24 +23,25 @@
*/ */
package de.ozgcloud.eingang.router; package de.ozgcloud.eingang.router;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.Optional; import java.util.Optional;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.Spy;
import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.FormDataTestFactory; import de.ozgcloud.eingang.common.formdata.FormDataTestFactory;
import de.ozgcloud.eingang.common.formdata.ZustaendigeStelleTestFactory; import de.ozgcloud.eingang.common.formdata.ZustaendigeStelleTestFactory;
import de.ozgcloud.vorgang.vorgang.GrpcEingang;
class VorgangServiceTest { class VorgangServiceTest {
@Spy
@InjectMocks @InjectMocks
private VorgangService service; private VorgangService service;
@Mock @Mock
...@@ -48,26 +49,45 @@ class VorgangServiceTest { ...@@ -48,26 +49,45 @@ class VorgangServiceTest {
@Mock @Mock
private VorgangRemoteService remoteService; private VorgangRemoteService remoteService;
@DisplayName("Create vorgang")
@Nested @Nested
class TestCreateVorgang { class TestCreateVorgang {
private FormData formData = FormDataTestFactory.create(); private final FormData formData = FormDataTestFactory.create();
private GrpcEingang eingang = GrpcEingang.newBuilder().build(); private final FormData preservedFormData = FormDataTestFactory.create();
@BeforeEach @BeforeEach
void mockEingangMapper() { void mockEingangMapper() {
when(eingangMapper.toEingang(any())).thenReturn(eingang); doReturn(preservedFormData).when(service).preserveConsistency(formData);
}
@Test
void shouldPreserverConsistency() {
callCreateVorgang();
verify(service).preserveConsistency(formData);
} }
@Test @Test
void shouldCallRemoteService() { void shouldCallRemoteService() {
callCreateVorgangNew(); callCreateVorgang();
verify(remoteService).createVorgang(formData, eingang, Optional.ofNullable(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID)); verify(remoteService).createVorgang(preservedFormData, Optional.ofNullable(ZustaendigeStelleTestFactory.ORGANISATIONSEINHEIT_ID));
} }
private void callCreateVorgangNew() { private void callCreateVorgang() {
service.createVorgang(formData); service.createVorgang(formData);
} }
} }
@DisplayName("Preserve consistency")
@Nested
class TestPreserveConsistency {
@DisplayName("should set serviceKonto to null if no postfachAddress exists")
@Test
void shouldSetServiceKontoToNull() {
}
}
} }
\ 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