Skip to content
Snippets Groups Projects
Commit 2d3b5796 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6949 ozg file mapper refactoring

parent 0bee201f
No related branches found
No related tags found
No related merge requests found
...@@ -35,6 +35,7 @@ import lombok.extern.log4j.Log4j2; ...@@ -35,6 +35,7 @@ import lombok.extern.log4j.Log4j2;
@RequiredArgsConstructor @RequiredArgsConstructor
class FileRemoteService { class FileRemoteService {
private final @NonNull FileRestClient restClient; private final @NonNull FileRestClient restClient;
private final @NonNull OzgFileMapper ozgFileMapper;
OzgFile getFile(FileIdentificationData fileIdentificationData, String address) { OzgFile getFile(FileIdentificationData fileIdentificationData, String address) {
var grpcFileMetadata = restClient.getFileMetadata(fileIdentificationData, address); var grpcFileMetadata = restClient.getFileMetadata(fileIdentificationData, address);
...@@ -44,7 +45,7 @@ class FileRemoteService { ...@@ -44,7 +45,7 @@ class FileRemoteService {
return null; return null;
} }
return OzgFileMapper.fromGrpcFileMetadata(grpcFileMetadata.getFileMetadata(), fileIdentificationData.fileId()); return ozgFileMapper.fromGrpcFileMetadata(grpcFileMetadata.getFileMetadata(), fileIdentificationData.fileId());
} }
CompletableFuture<String> uploadFile(OzgUploadFile uploadFile, String address) { CompletableFuture<String> uploadFile(OzgUploadFile uploadFile, String address) {
......
...@@ -20,20 +20,18 @@ ...@@ -20,20 +20,18 @@
package de.ozgcloud.antragsraum.attachments; package de.ozgcloud.antragsraum.attachments;
import java.util.Objects; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata; import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
@NoArgsConstructor(access = AccessLevel.PRIVATE) @Mapper
class OzgFileMapper { interface OzgFileMapper {
static OzgFile fromGrpcFileMetadata(AntragraumGrpcFileMetadata grpcFile, String fileId) {
return OzgFile.builder() @Mapping(target = "id", source = "fileId")
.id(fileId) @Mapping(target = "fileName", source = "grpcFile.name")
.fileName(grpcFile.getName()) @Mapping(target = "contentType", source = "grpcFile.contentType")
.contentType(grpcFile.getContentType()) @Mapping(target = "fileSize", expression = "java(grpcFile.getSize() != null ? Long.parseLong(grpcFile.getSize()) : -1L)")
.fileSize(Objects.nonNull(grpcFile.getSize()) ? Long.parseLong(grpcFile.getSize()) : -1L) OzgFile fromGrpcFileMetadata(AntragraumGrpcFileMetadata grpcFile, String fileId);
.build();
}
} }
...@@ -40,6 +40,8 @@ import org.mockito.Mock; ...@@ -40,6 +40,8 @@ import org.mockito.Mock;
import org.mockito.Spy; import org.mockito.Spy;
import org.mockito.junit.jupiter.MockitoExtension; import org.mockito.junit.jupiter.MockitoExtension;
import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata;
@ExtendWith(MockitoExtension.class) @ExtendWith(MockitoExtension.class)
class FileRemoteServiceTest { class FileRemoteServiceTest {
private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create(); private static final FileIdentificationData FILE_IDENTIFICATION_DATA = FileIdentificationDataTestFactory.create();
...@@ -51,12 +53,17 @@ class FileRemoteServiceTest { ...@@ -51,12 +53,17 @@ class FileRemoteServiceTest {
@Mock @Mock
private FileRestClient restClient; private FileRestClient restClient;
@Mock
private OzgFileMapper ozgFileMapper;
@Nested @Nested
class TestLoadingFile { class TestLoadingFile {
@BeforeEach @BeforeEach
void init() { void init() {
lenient().when(restClient.getFileMetadata(any(FileIdentificationData.class), anyString())).thenReturn( lenient().when(restClient.getFileMetadata(any(FileIdentificationData.class), anyString())).thenReturn(
AntragraumGrpcGetAttachmentMetadataResponseTestFactory.create()); AntragraumGrpcGetAttachmentMetadataResponseTestFactory.create());
lenient().when(ozgFileMapper.fromGrpcFileMetadata(any(AntragraumGrpcFileMetadata.class), anyString()))
.thenReturn(OzgFileTestFactory.create());
} }
@Test @Test
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
package de.ozgcloud.antragsraum.attachments; package de.ozgcloud.antragsraum.attachments;
import org.mapstruct.factory.Mappers;
import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
...@@ -42,9 +43,14 @@ public class FileRemoteServiceTestConfiguration { ...@@ -42,9 +43,14 @@ public class FileRemoteServiceTestConfiguration {
return new StubFileRestClient(); return new StubFileRestClient();
} }
@Bean
OzgFileMapper ozgFileMapper() {
return Mappers.getMapper(OzgFileMapper.class);
}
@Bean @Bean
FileRemoteService fileRemoteService() { FileRemoteService fileRemoteService() {
return new FileRemoteService(fileRestClient()); return new FileRemoteService(fileRestClient(), ozgFileMapper());
} }
@Bean @Bean
......
...@@ -27,40 +27,45 @@ import static org.assertj.core.api.Assertions.*; ...@@ -27,40 +27,45 @@ import static org.assertj.core.api.Assertions.*;
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.mapstruct.factory.Mappers;
import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata; import de.ozgcloud.antragsraum.proxy.AntragraumGrpcFileMetadata;
class OzgFileMapperTest { class OzgFileMapperTest {
private final OzgFileMapper mapper = Mappers.getMapper(OzgFileMapper.class);
@Nested @Nested
class TestMappingGrpcOzgFile { class TestMappingGrpcOzgFile {
private final AntragraumGrpcFileMetadata grpcOzgFile = AntragraumGrpcFileMetadataTestFactory.create(); private final AntragraumGrpcFileMetadata grpcOzgFile = AntragraumGrpcFileMetadataTestFactory.create();
@Test @Test
void shouldHaveFileName() { void shouldHaveFileName() {
var file = OzgFileMapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID); var file = mapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID);
assertThat(file.fileName()).isEqualTo(FILE_NAME); assertThat(file.fileName()).isEqualTo(FILE_NAME);
} }
@Test @Test
void shouldHaveFileSize() { void shouldHaveFileSize() {
var file = OzgFileMapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID); var file = mapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID);
assertThat(file.fileSize()).isEqualTo(FILE_SIZE); assertThat(file.fileSize()).isEqualTo(FILE_SIZE);
} }
@Test @Test
void shouldHaveContentType() { void shouldHaveContentType() {
var file = OzgFileMapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID); var file = mapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID);
assertThat(file.contentType()).isEqualTo(CONTENT_TYPE); assertThat(file.contentType()).isEqualTo(CONTENT_TYPE);
} }
@Test @Test
void shouldHaveFileId() { void shouldHaveFileId() {
var file = OzgFileMapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID); var file = mapper.fromGrpcFileMetadata(grpcOzgFile, FILE_ID);
assertThat(file.id()).isEqualTo(FILE_ID); assertThat(file.id()).isEqualTo(FILE_ID);
} }
} }
} }
\ 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