Skip to content
Snippets Groups Projects
Commit b8303a52 authored by Krzysztof Witukiewicz's avatar Krzysztof Witukiewicz
Browse files

Merge branch 'OZG-7262-attarchments-not-null' into 'main'

Ozg 7262 attarchments not null

See merge request !6
parents b89a8f8f 090316fb
Branches
Tags
1 merge request!6Ozg 7262 attarchments not null
......@@ -44,8 +44,6 @@ import net.devh.boot.grpc.server.service.GrpcService;
@RequiredArgsConstructor
class ExportGrpcService extends ExportServiceImplBase {
static final int CHUNK_SIZE = 256 * 1024;
private final ExportService exportService;
private final TaskExecutor taskExecutor;
......
......@@ -29,6 +29,7 @@ import java.util.List;
import de.ozgcloud.common.binaryfile.FileId;
import lombok.Builder;
import lombok.Getter;
import lombok.Singular;
@Builder
@Getter
......@@ -37,5 +38,6 @@ public class Kommentar {
private String text;
private ZonedDateTime createdAt;
private String createdBy;
@Singular
private List<FileId> attachments;
}
......@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.Objects;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.NullValueCheckStrategy;
import org.mapstruct.ReportingPolicy;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -55,6 +56,7 @@ abstract class KommentarMapper {
return grpcObjectMapper.mapFromGrpc(item);
}
@Mapping(target = "attachment", ignore = true)
abstract Kommentar mapItemMapToKommentar(Map<String, Object> map);
String mapObjectToString(Object object) {
......
......@@ -27,7 +27,6 @@ import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import java.util.Collection;
import java.util.Map;
import org.junit.jupiter.api.BeforeEach;
......@@ -145,101 +144,50 @@ class KommentarMapperTest {
@Nested
class TestMapItemMapToKommentar {
@Nested
class OnAllFieldsSet {
@BeforeEach
void init() {
doReturn(KommentarTestFactory.ID).when(mapper).mapObjectToString(KommentarTestFactory.ID);
doReturn(KommentarTestFactory.TEXT).when(mapper).mapObjectToString(KommentarTestFactory.TEXT);
doReturn(KommentarTestFactory.CREATED_BY).when(mapper).mapObjectToString(KommentarTestFactory.CREATED_BY);
doReturn(KommentarTestFactory.CREATED_AT_STR).when(mapper).mapObjectToString(KommentarTestFactory.CREATED_AT_STR);
when(timeMapper.parseString(KommentarTestFactory.CREATED_AT_STR)).thenReturn(KommentarTestFactory.CREATED_AT);
when(attachmentMapper.mapAttachments(argThat(this::isCollectionOfAttachmentIds))).thenReturn(KommentarTestFactory.ATTACHMENTS);
}
@Test
void shouldMapIdToString() {
callMapper();
verify(mapper).mapObjectToString(KommentarTestFactory.ID);
}
@Test
void shouldMapId() {
var kommentar = callMapper();
assertThat(kommentar.getId()).isEqualTo(KommentarTestFactory.ID);
when(timeMapper.parseString(any())).thenReturn(KommentarTestFactory.CREATED_AT);
when(attachmentMapper.mapAttachments(anyList())).thenReturn(KommentarTestFactory.ATTACHMENTS);
}
@Test
void shouldMapTextToString() {
void shouldCallTimeMapper() {
callMapper();
verify(mapper).mapObjectToString(KommentarTestFactory.TEXT);
}
@Test
void shouldMapText() {
var kommentar = callMapper();
assertThat(kommentar.getText()).isEqualTo(KommentarTestFactory.TEXT);
verify(timeMapper).parseString(KommentarTestFactory.CREATED_AT_STR);
}
@Test
void shouldMapCreatedByToString() {
void shouldCallAttachmentMapper() {
callMapper();
verify(mapper).mapObjectToString(KommentarTestFactory.CREATED_BY);
verify(attachmentMapper).mapAttachments(GrpcKommentarTestFactory.ATTACHMENTS);
}
@Test
void shouldMapCreatedBy() {
void shouldMapAllFields() {
var kommentar = callMapper();
assertThat(kommentar.getCreatedBy()).isEqualTo(KommentarTestFactory.CREATED_BY);
assertThat(kommentar).usingRecursiveComparison().isEqualTo(KommentarTestFactory.create());
}
@Test
void shouldMapCreatedAtToString() {
callMapper();
verify(mapper).mapObjectToString(KommentarTestFactory.CREATED_AT_STR);
}
@Test
void shouldCallTimeMapper() {
callMapper();
verify(timeMapper).parseString(KommentarTestFactory.CREATED_AT_STR);
private Kommentar callMapper() {
return mapper.mapItemMapToKommentar(GrpcKommentarTestFactory.createItemAsMap());
}
@Test
void shouldMapCreatedAt() {
var kommentar = callMapper();
assertThat(kommentar.getCreatedAt()).isEqualTo(KommentarTestFactory.CREATED_AT);
}
@Test
void shouldCallAttachmentMapper() {
callMapper();
verify(attachmentMapper).mapAttachments(argThat(this::isCollectionOfAttachmentIds));
}
@Nested
class OnAttachmentsMissing {
@Test
void shouldMapAttachments() {
var kommentar = callMapper();
assertThat(kommentar.getAttachments()).containsExactlyElementsOf(KommentarTestFactory.ATTACHMENTS);
}
void shouldSetToEmptyCollection() {
var kommentar = mapper.mapItemMapToKommentar(Map.of());
@SuppressWarnings("unchecked")
private boolean isCollectionOfAttachmentIds(Object obj) {
return obj instanceof Collection && ((Collection<String>) obj).containsAll(GrpcKommentarTestFactory.ATTACHMENTS);
assertThat(kommentar.getAttachments()).isEmpty();
}
private Kommentar callMapper() {
return mapper.mapItemMapToKommentar(GrpcKommentarTestFactory.createItemAsMap());
}
}
......
......@@ -32,7 +32,7 @@
<parent>
<groupId>de.ozgcloud.common</groupId>
<artifactId>ozgcloud-common-parent</artifactId>
<version>4.7.0</version>
<version>4.10.0-SNAPSHOT</version>
</parent>
<groupId>de.ozgcloud.archive</groupId>
......@@ -56,7 +56,7 @@
<api-lib.version>0.16.0</api-lib.version>
<find-and-replace-maven-plugin.version>1.2.0</find-and-replace-maven-plugin.version>
<protoc-jar-plugin.version>3.11.4</protoc-jar-plugin.version>
<ozgcloud-common.version>4.7.0</ozgcloud-common.version>
<ozgcloud-common.version>4.10.0-SNAPSHOT</ozgcloud-common.version>
<document-manager.version>1.1.0</document-manager.version>
<xta-client-lib.version>0.1.0</xta-client-lib.version>
</properties>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment