Skip to content
Snippets Groups Projects
Commit 3ca0f8f9 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-465 Pluto/Grpc

parent cd484ed8
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,9 @@ service BinaryFileService {
rpc FindBinaryFiles(GrpcBinaryFilesRequest) returns (GrpcFindFilesResponse) {
}
rpc GetBinaryFileData(GrpcBinaryFileDataRequest) returns (GrpcBinaryFileDataResponse) {
}
}
message GrpcUploadRequest {
......@@ -37,3 +40,11 @@ message GrpcBinaryFilesRequest {
message GrpcFindFilesResponse {
repeated de.itvsh.ozg.pluto.grpc.file.GrpcOzgFile file = 1;
}
message GrpcBinaryFileDataRequest {
string fileId = 1;
}
message GrpcBinaryFileDataResponse {
de.itvsh.ozg.pluto.grpc.file.GrpcOzgFileData data = 1;
}
\ No newline at end of file
......@@ -6,6 +6,8 @@ import java.util.stream.Stream;
import org.springframework.beans.factory.annotation.Autowired;
import de.itvsh.ozg.pluto.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServiceImplBase;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcBinaryFileDataRequest;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcBinaryFileDataResponse;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcBinaryFilesRequest;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcFindFilesResponse;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcUploadRequest;
......@@ -22,6 +24,8 @@ public class GrpcBinaryFileService extends BinaryFileServiceImplBase {
private FileService service;
@Autowired
private GrpcOzgFileMapper fileMapper;
@Autowired
private GrpcGetOzgFileDataResponseMapper grpcGetOzgFileDataResponseMapper;
@Override
public void uploadBinaryFile(GrpcUploadRequest request, StreamObserver<GrpcUploadResponse> responseObserver) {
......@@ -53,4 +57,12 @@ public class GrpcBinaryFileService extends BinaryFileServiceImplBase {
files.map(wrapper -> fileMapper.toGrpcFile(wrapper, wrapper.getFile())).forEach(builder::addFile);
return builder.build();
}
@Override
public void getBinaryFileData(GrpcBinaryFileDataRequest request, StreamObserver<GrpcBinaryFileDataResponse> responseObserver) {
var data = service.getUploadedFileContent(FileId.from(request.getFileId()));
responseObserver.onNext(GrpcBinaryFileDataResponse.newBuilder().setData(grpcGetOzgFileDataResponseMapper.map(data)).build());
responseObserver.onCompleted();
}
}
......@@ -91,4 +91,15 @@ class FileServiceTest {
verify(binaryFileRepository).findAllById(anyCollection());
}
}
@Nested
class TestGetUploadedFileContent {
@Test
void shouldBinaryFileRepository() {
service.getUploadedFileContent(OzgFileTestFactory.ID);
verify(binaryFileRepository).getContent(OzgFileTestFactory.ID);
}
}
}
\ No newline at end of file
package de.itvsh.ozg.pluto.files;
import java.util.UUID;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcBinaryFileDataRequest;
public class GrpcBinaryFileDataRequestTestFactory {
public static String FILE_ID = UUID.randomUUID().toString();
public static GrpcBinaryFileDataRequest create() {
return createBuilder().build();
}
public static GrpcBinaryFileDataRequest.Builder createBuilder() {
return GrpcBinaryFileDataRequest.newBuilder()
.setFileId(FILE_ID);
}
}
\ No newline at end of file
......@@ -15,6 +15,7 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import de.itvsh.ozg.pluto.common.grpc.StreamRecorder;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcBinaryFileDataResponse;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcFindFilesResponse;
import de.itvsh.ozg.pluto.grpc.binaryFile.GrpcUploadResponse;
import de.itvsh.ozg.pluto.vorgang.VorgangTestFactory;
......@@ -27,6 +28,8 @@ class GrpcBinaryFileServiceTest {
private FileService service;
@Mock
private GrpcOzgFileMapper fileMapper;
@Mock
private GrpcGetOzgFileDataResponseMapper grpcGetOzgFileDataResponseMapper;
@Nested
class TestUploadBinaryFile {
......@@ -134,4 +137,50 @@ class GrpcBinaryFileServiceTest {
verify(responseObserver).onCompleted();
}
}
@Nested
class TestGetBinaryFileData {
@Mock
private StreamRecorder<GrpcBinaryFileDataResponse> responseObserver;
@Captor
private ArgumentCaptor<Collection<FileId>> fileIdsCaptor;
@Captor
private ArgumentCaptor<GrpcBinaryFileDataResponse> responseCaptor;
@BeforeEach
void mock() {
when(grpcGetOzgFileDataResponseMapper.map(any())).thenReturn(GrpcOzgFileDataTestFactory.create());
when(service.getUploadedFileContent(any(FileId.class))).thenReturn(OzgFileDataTestFactory.create());
}
@Test
void shouldCallService() {
grpcService.getBinaryFileData(GrpcBinaryFileDataRequestTestFactory.create(), responseObserver);
verify(service).getUploadedFileContent(FileId.from(GrpcBinaryFileDataRequestTestFactory.FILE_ID));
}
@Test
void shouldCallMapper() {
grpcService.getBinaryFileData(GrpcBinaryFileDataRequestTestFactory.create(), responseObserver);
verify(grpcGetOzgFileDataResponseMapper).map(any(OzgFileData.class));
}
@Test
void shouldReturnList() {
grpcService.getBinaryFileData(GrpcBinaryFileDataRequestTestFactory.create(), responseObserver);
verify(responseObserver).onNext(responseCaptor.capture());
}
@Test
void shouldCallComplete() {
grpcService.getBinaryFileData(GrpcBinaryFileDataRequestTestFactory.create(), responseObserver);
verify(responseObserver).onCompleted();
}
}
}
\ 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