Skip to content
Snippets Groups Projects
Commit 31720cad authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-5009 check if bescheid exists in grpc response' (#472)...

Merge pull request 'OZG-5009 check if bescheid exists in grpc response' (#472) from OZG-5009-fix-grpc-empty-draft-loading into OZG-5009-ohne-ngrx

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/alfa/pulls/472


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents 68744326 ee8b4dc2
Branches
Tags
No related merge requests found
...@@ -7,7 +7,9 @@ import org.springframework.stereotype.Service; ...@@ -7,7 +7,9 @@ import org.springframework.stereotype.Service;
import de.ozgcloud.alfa.common.GrpcUtil; import de.ozgcloud.alfa.common.GrpcUtil;
import de.ozgcloud.bescheid.BescheidServiceGrpc.BescheidServiceBlockingStub; import de.ozgcloud.bescheid.BescheidServiceGrpc.BescheidServiceBlockingStub;
import de.ozgcloud.bescheid.GrpcBescheid;
import de.ozgcloud.bescheid.GrpcGetBescheidDraftRequest; import de.ozgcloud.bescheid.GrpcGetBescheidDraftRequest;
import de.ozgcloud.bescheid.GrpcGetBescheidDraftResponse;
import net.devh.boot.grpc.client.inject.GrpcClient; import net.devh.boot.grpc.client.inject.GrpcClient;
@Service @Service
...@@ -21,7 +23,7 @@ class BescheidRemoteService { ...@@ -21,7 +23,7 @@ class BescheidRemoteService {
public Optional<Bescheid> getBescheidDraft(String vorgangId) { public Optional<Bescheid> getBescheidDraft(String vorgangId) {
var request = buildGetBescheidDraftRequest(vorgangId); var request = buildGetBescheidDraftRequest(vorgangId);
var response = bescheidServiceStub.getBescheidDraft(request); var response = bescheidServiceStub.getBescheidDraft(request);
return Optional.ofNullable(bescheidMapper.fromGrpc(response.getBescheid(), vorgangId)); return getBescheidFromResponse(response).map(bescheid -> bescheidMapper.fromGrpc(bescheid, vorgangId));
} }
GrpcGetBescheidDraftRequest buildGetBescheidDraftRequest(String vorgangId) { GrpcGetBescheidDraftRequest buildGetBescheidDraftRequest(String vorgangId) {
...@@ -30,4 +32,8 @@ class BescheidRemoteService { ...@@ -30,4 +32,8 @@ class BescheidRemoteService {
.build(); .build();
} }
Optional<GrpcBescheid> getBescheidFromResponse(GrpcGetBescheidDraftResponse response) {
return response.hasBescheid() ? Optional.of(response.getBescheid()) : Optional.empty();
}
} }
...@@ -3,6 +3,8 @@ package de.ozgcloud.alfa.bescheid; ...@@ -3,6 +3,8 @@ package de.ozgcloud.alfa.bescheid;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.Optional;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
...@@ -36,8 +38,6 @@ class BescheidRemoteServiceTest { ...@@ -36,8 +38,6 @@ class BescheidRemoteServiceTest {
void setUp() { void setUp() {
doReturn(request).when(service).buildGetBescheidDraftRequest(VorgangHeaderTestFactory.ID); doReturn(request).when(service).buildGetBescheidDraftRequest(VorgangHeaderTestFactory.ID);
when(bescheidServiceStub.getBescheidDraft(request)).thenReturn(response); when(bescheidServiceStub.getBescheidDraft(request)).thenReturn(response);
when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn(
bescheidDraft);
} }
@Test @Test
...@@ -56,6 +56,8 @@ class BescheidRemoteServiceTest { ...@@ -56,6 +56,8 @@ class BescheidRemoteServiceTest {
@Test @Test
void shouldCallMapper() { void shouldCallMapper() {
doReturn(Optional.of(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID)).when(service).getBescheidFromResponse(response);
service.getBescheidDraft(VorgangHeaderTestFactory.ID); service.getBescheidDraft(VorgangHeaderTestFactory.ID);
verify(bescheidMapper).fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID); verify(bescheidMapper).fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID);
...@@ -63,6 +65,9 @@ class BescheidRemoteServiceTest { ...@@ -63,6 +65,9 @@ class BescheidRemoteServiceTest {
@Test @Test
void shouldReturnBescheid() { void shouldReturnBescheid() {
when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn(
bescheidDraft);
var bescheidDraft = service.getBescheidDraft(VorgangHeaderTestFactory.ID); var bescheidDraft = service.getBescheidDraft(VorgangHeaderTestFactory.ID);
assertThat(bescheidDraft).hasValue(this.bescheidDraft); assertThat(bescheidDraft).hasValue(this.bescheidDraft);
...@@ -70,12 +75,19 @@ class BescheidRemoteServiceTest { ...@@ -70,12 +75,19 @@ class BescheidRemoteServiceTest {
@Test @Test
void shouldReturnEmpty() { void shouldReturnEmpty() {
when(bescheidMapper.fromGrpc(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID, VorgangHeaderTestFactory.ID)).thenReturn(null); doReturn(Optional.empty()).when(service).getBescheidFromResponse(response);
var bescheidDraft = service.getBescheidDraft(VorgangHeaderTestFactory.ID); var bescheidDraft = service.getBescheidDraft(VorgangHeaderTestFactory.ID);
assertThat(bescheidDraft).isEmpty(); assertThat(bescheidDraft).isEmpty();
} }
@Test
void shouldGetBescheidFromResponse() {
service.getBescheidDraft(VorgangHeaderTestFactory.ID);
verify(service).getBescheidFromResponse(response);
}
} }
@Nested @Nested
...@@ -89,4 +101,22 @@ class BescheidRemoteServiceTest { ...@@ -89,4 +101,22 @@ class BescheidRemoteServiceTest {
} }
} }
@Nested
class GetBescheidFromResponseTest {
@Test
void shouldReturnEmpty() {
var bescheid = service.getBescheidFromResponse(GrpcGetBescheidDraftResponse.getDefaultInstance());
assertThat(bescheid).isEmpty();
}
@Test
void shouldReturnBescheid() {
var bescheid = service.getBescheidFromResponse(GrpcGetBescheidDraftResponseTestFactory.create());
assertThat(bescheid).hasValue(GrpcGetBescheidDraftResponseTestFactory.GRPC_BESCHEID);
}
}
} }
\ 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