Skip to content
Snippets Groups Projects
Commit 57e213c3 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6508 use vorgangId from request

parent 8c818fe9
No related branches found
No related tags found
No related merge requests found
......@@ -25,6 +25,7 @@ package de.ozgcloud.vorgang.files;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import de.ozgcloud.vorgang.grpc.file.FileServiceGrpc.FileServiceImplBase;
......@@ -46,17 +47,33 @@ public class GrpcFileService extends FileServiceImplBase {
@Override
public void getAttachments(GrpcGetAttachmentsRequest request, StreamObserver<GrpcGetAttachmentsResponse> responseObserver) {
List<OzgFile> response = service.getAttachments(request.getEingangId());
List<OzgFile> response = service.getAttachments(getVorgangId(request), getEingangId(request));
responseObserver.onNext(GrpcGetAttachmentsResponse.newBuilder().addAllFile(fileMapper.map(response)).build());
responseObserver.onCompleted();
}
private String getVorgangId(GrpcGetAttachmentsRequest request) {
return StringUtils.trimToNull(request.getVorgangId());
}
private String getEingangId(GrpcGetAttachmentsRequest request) {
return StringUtils.trimToNull(request.getEingangId());
}
@Override
public void getRepresentations(GrpcGetRepresentationsRequest request, StreamObserver<GrpcGetRepresentationsResponse> responseObserver) {
List<OzgFile> response = service.getRepresentations(request.getEingangId());
List<OzgFile> response = service.getRepresentations(getVorgangId(request), getEingangId(request));
responseObserver.onNext(GrpcGetRepresentationsResponse.newBuilder().addAllFile(fileMapper.map(response)).build());
responseObserver.onCompleted();
}
private String getVorgangId(GrpcGetRepresentationsRequest request) {
return StringUtils.trimToNull(request.getVorgangId());
}
private String getEingangId(GrpcGetRepresentationsRequest request) {
return StringUtils.trimToNull(request.getEingangId());
}
}
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.vorgang.files;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import de.ozgcloud.vorgang.grpc.file.GrpcGetAttachmentsResponse;
import de.ozgcloud.vorgang.grpc.file.GrpcGetRepresentationsResponse;
import de.ozgcloud.vorgang.grpc.file.GrpcOzgFile;
import io.grpc.stub.StreamObserver;
class GrpcFileServiceTest {
private static final GrpcOzgFile GRPC_OZG_FILE = GrpcOzgFileTestFactory.create();
@InjectMocks
private GrpcFileService grpcFileService;
@Mock
private FileService fileService;
@Mock
private GrpcOzgFileMapper fileMapper;
@BeforeEach
void init() {
when(fileMapper.map(anyList())).thenReturn(List.of(GRPC_OZG_FILE));
}
@Nested
class TestGetAttachments {
@Mock
private StreamObserver<GrpcGetAttachmentsResponse> responseObserver;
@Captor
private ArgumentCaptor<GrpcGetAttachmentsResponse> responseCaptor;
@Test
void shouldCallGetAttachments() {
getAttachments();
verify(fileService).getAttachments(GrpcGetAttachmentsRequestTestFactory.VORGANG_ID, GrpcGetAttachmentsRequestTestFactory.EINGANG_ID);
}
@Test
void shouldCallFileMapper() {
var ozgFiles = List.of(OzgFileTestFactory.create());
when(fileService.getAttachments(anyString(), anyString())).thenReturn(ozgFiles);
getAttachments();
verify(fileMapper).map(ozgFiles);
}
@Test
void shouldAddFilesToResponse() {
getAttachments();
verify(responseObserver).onNext(responseCaptor.capture());
assertThat(responseCaptor.getValue().getFileList()).containsExactly(GRPC_OZG_FILE);
}
@Test
void shouldCallCompleted() {
getAttachments();
verify(responseObserver).onCompleted();
}
private void getAttachments() {
grpcFileService.getAttachments(GrpcGetAttachmentsRequestTestFactory.create(), responseObserver);
}
}
@Nested
class TestGetRepresentations {
@Mock
private StreamObserver<GrpcGetRepresentationsResponse> responseObserver;
@Captor
private ArgumentCaptor<GrpcGetRepresentationsResponse> responseCaptor;
@Test
void shouldCallGetRepresentations() {
getRepresentations();
verify(fileService).getRepresentations(GrpcGetRepresentationsRequestTestFactory.VORGANG_ID,
GrpcGetRepresentationsRequestTestFactory.EINGANG_ID);
}
@Test
void shouldCallFileMapper() {
var ozgFiles = List.of(OzgFileTestFactory.create());
when(fileService.getRepresentations(anyString(), anyString())).thenReturn(ozgFiles);
getRepresentations();
verify(fileMapper).map(ozgFiles);
}
@Test
void shouldAddFilesToResponse() {
getRepresentations();
verify(responseObserver).onNext(responseCaptor.capture());
assertThat(responseCaptor.getValue().getFileList()).containsExactly(GRPC_OZG_FILE);
}
@Test
void shouldCallCompleted() {
getRepresentations();
verify(responseObserver).onCompleted();
}
private void getRepresentations() {
grpcFileService.getRepresentations(GrpcGetRepresentationsRequestTestFactory.create(), responseObserver);
}
}
}
\ No newline at end of file
......@@ -25,9 +25,11 @@ package de.ozgcloud.vorgang.files;
import de.ozgcloud.vorgang.grpc.file.GrpcGetAttachmentsRequest;
import de.ozgcloud.vorgang.vorgang.EingangTestFactory;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
public class GrpcGetAttachmentsRequestTestFactory {
public static final String VORGANG_ID = VorgangTestFactory.ID;
public static final String EINGANG_ID = EingangTestFactory.ID;
public static GrpcGetAttachmentsRequest create() {
......@@ -36,6 +38,7 @@ public class GrpcGetAttachmentsRequestTestFactory {
public static GrpcGetAttachmentsRequest.Builder createBuilder() {
return GrpcGetAttachmentsRequest.newBuilder()
.setEingangId(EINGANG_ID);
.setEingangId(EINGANG_ID)
.setVorgangId(VORGANG_ID);
}
}
......@@ -25,10 +25,12 @@ package de.ozgcloud.vorgang.files;
import de.ozgcloud.vorgang.grpc.file.GrpcGetRepresentationsRequest;
import de.ozgcloud.vorgang.vorgang.EingangTestFactory;
import de.ozgcloud.vorgang.vorgang.VorgangTestFactory;
public class GrpcGetRepresentationsRequestTestFactory {
public static final String EINGANG_ID = EingangTestFactory.ID;
public static final String VORGANG_ID = VorgangTestFactory.ID;
public static GrpcGetRepresentationsRequest create() {
return createBuilder().build();
......@@ -36,6 +38,7 @@ public class GrpcGetRepresentationsRequestTestFactory {
public static GrpcGetRepresentationsRequest.Builder createBuilder() {
return GrpcGetRepresentationsRequest.newBuilder()
.setEingangId(EINGANG_ID);
.setEingangId(EINGANG_ID)
.setVorgangId(VORGANG_ID);
}
}
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.vorgang.files;
import de.ozgcloud.vorgang.grpc.file.GrpcOzgFile;
public class GrpcOzgFileTestFactory {
public static GrpcOzgFile create() {
return createBuilder().build();
}
public static GrpcOzgFile.Builder createBuilder() {
return GrpcOzgFile.newBuilder()
.setId(OzgFileTestFactory.ID.toString())
.setName(OzgFileTestFactory.NAME)
.setSize(OzgFileTestFactory.SIZE)
.setContentType(OzgFileTestFactory.CONTENT_TYPE);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment