Skip to content
Snippets Groups Projects
Commit 58285cc7 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-2566 OZG-2684 wiedervorlage: map version from vorgangAttachedItem instead...

OZG-2566 OZG-2684 wiedervorlage: map version from vorgangAttachedItem instead of vorgangAttachedItem#item
parent 8a81de1d
Branches
Tags
No related merge requests found
......@@ -11,18 +11,23 @@ import org.mapstruct.CollectionMappingStrategy;
import org.mapstruct.Mapper;
import org.mapstruct.NullValueCheckStrategy;
import org.mapstruct.ReportingPolicy;
import org.springframework.beans.factory.annotation.Autowired;
import de.itvsh.goofy.common.binaryfile.FileId;
import de.itvsh.goofy.common.binaryfile.FileIdMapper;
import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItem;
@Mapper(uses = { FileIdMapper.class }, unmappedTargetPolicy = ReportingPolicy.WARN, //
unmappedSourcePolicy = ReportingPolicy.WARN, //
nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS, //
collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED)
public interface WiedervorlageMapper {
abstract class WiedervorlageMapper {
@Autowired
private GrpcObjectMapper grpcObjectMapper;
static final String ID = "id";
static final String VERSION = "version";
static final String DONE = "done";
static final String CREATED_BY = "createdBy";
static final String CREATED_BY_NAME = "createdByName";
......@@ -32,10 +37,14 @@ public interface WiedervorlageMapper {
static final String FRIST = "frist";
static final String ATTACHMENTS = "attachments";
default Wiedervorlage fromItemMap(Map<String, Object> itemMap) {
public Wiedervorlage fromItem(GrpcVorgangAttachedItem item) {
return fromItemMap(grpcObjectMapper.mapFromGrpc(item.getItem()), item.getVersion());
}
Wiedervorlage fromItemMap(Map<String, Object> itemMap, long version) {
return Wiedervorlage.builder()
.id((String) itemMap.get(ID))
.version((long) itemMap.get(VERSION))
.version(version)
.done(Boolean.valueOf((String) itemMap.get(DONE)))
.createdBy((String) itemMap.get(CREATED_BY))
.createdAt(ZonedDateTime.parse((String) itemMap.get(CREATED_AT)))
......
......@@ -10,7 +10,6 @@ import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import de.itvsh.goofy.GoofyServerApplication;
import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
import de.itvsh.ozg.pluto.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcAccessPermission;
import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcClientAttribute;
......@@ -37,16 +36,12 @@ public class WiedervorlageRemoteService {
@Autowired
private WiedervorlageMapper mapper;
@Autowired
private GrpcObjectMapper grpcObjectMapper;
@Autowired
private ApplicationContext context;
public Stream<Wiedervorlage> findByVorgangId(String vorgangId) {
var response = vorgangAttachedItemServiceStub.find(buildFindRequest(vorgangId));
return response.getVorgangAttachedItemsList().stream()
.map(item -> grpcObjectMapper.mapFromGrpc(item.getItem()))
.map(mapper::fromItemMap);
return response.getVorgangAttachedItemsList().stream().map(mapper::fromItem);
}
GrpcFindVorgangAttachedItemRequest buildFindRequest(String vorgangId) {
......@@ -58,8 +53,8 @@ public class WiedervorlageRemoteService {
public Wiedervorlage getById(String wiedervorlageId) {
var response = vorgangAttachedItemServiceStub.getById(GrpcVorgangAttachedItemRequest.newBuilder().setId(wiedervorlageId).build());
var wiedervorlage = mapper.fromItemMap(grpcObjectMapper.mapFromGrpc(response.getVorgangAttachedItem().getItem()));
return wiedervorlage.toBuilder().vorgangId(response.getVorgangAttachedItem().getVorgangId()).build();
return mapper.fromItem(response.getVorgangAttachedItem()).toBuilder().vorgangId(response.getVorgangAttachedItem().getVorgangId()).build();
}
public void updateNextFrist(String vorgangId, Optional<LocalDate> nextFrist) {
......
......@@ -15,6 +15,7 @@ public class GrpcVorgangAttachedItemTestFactory {
public final static String ITEM_NAME = LoremIpsum.getInstance().getWords(1);
public final static String ITEM_KEY = LoremIpsum.getInstance().getWords(1);
public final static String ITEM_VALUE = LoremIpsum.getInstance().getWords(1);
public final static long VERSION = 73;
public static final GrpcObject ITEM = GrpcObject.newBuilder()
.addProperty(GrpcProperty.newBuilder()
......@@ -33,6 +34,7 @@ public class GrpcVorgangAttachedItemTestFactory {
.setClient(CLIENT)
.setVorgangId(VorgangHeaderTestFactory.ID)
.setItemName(ITEM_NAME)
.setItem(ITEM);
.setItem(ITEM)
.setVersion(VERSION);
}
}
\ No newline at end of file
package de.itvsh.goofy.wiedervorlage;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import java.util.HashMap;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Spy;
import static org.assertj.core.api.Assertions.*;
import de.itvsh.goofy.common.binaryfile.BinaryFileTestFactory;
import de.itvsh.goofy.common.binaryfile.FileIdMapper;
import de.itvsh.goofy.vorgang.GrpcVorgangAttachedItemTestFactory;
import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
import de.itvsh.ozg.pluto.common.GrpcObject;
class WiedervorlageMapperTest {
@Spy
@InjectMocks
private WiedervorlageMapper mapper = Mappers.getMapper(WiedervorlageMapper.class);
@Spy
private FileIdMapper fileIdMapper = Mappers.getMapper(FileIdMapper.class);
@Mock
private GrpcObjectMapper grpcObjectMapper;
@DisplayName("Map from item")
@Nested
class TestFromItem {
@BeforeEach
void mockMapper() {
when(grpcObjectMapper.mapFromGrpc(any())).thenReturn(WiedervorlageTestFactory.createAsMap());
}
@Test
void shouldCallGrpcObjectMapper() {
mapper.fromItem(GrpcVorgangAttachedItemTestFactory.create());
verify(grpcObjectMapper).mapFromGrpc(any(GrpcObject.class));
}
@Test
void shouldCallMapperFromItemMap() {
mapper.fromItem(GrpcVorgangAttachedItemTestFactory.create());
verify(mapper).fromItemMap(WiedervorlageTestFactory.createAsMap(), GrpcVorgangAttachedItemTestFactory.VERSION);
}
}
@DisplayName("Map from item map")
@Nested
class TestFromItemMap {
......@@ -89,7 +126,7 @@ class WiedervorlageMapperTest {
wiedervorlageWithoutAttachments.putAll(WiedervorlageTestFactory.createAsMap());
wiedervorlageWithoutAttachments.remove(WiedervorlageMapper.ATTACHMENTS);
var wiedervorlage = mapper.fromItemMap(wiedervorlageWithoutAttachments);
var wiedervorlage = mapper.fromItemMap(wiedervorlageWithoutAttachments, WiedervorlageTestFactory.VERSION);
assertThat(wiedervorlage.getAttachments()).isEmpty();
}
......@@ -103,7 +140,7 @@ class WiedervorlageMapperTest {
@Test
void shouldMapAttachmentList() {
var wiedervorlage = mapper.fromItemMap(createWiedervorlageAsMapWithMultipleAttachments());
var wiedervorlage = mapper.fromItemMap(createWiedervorlageAsMapWithMultipleAttachments(), WiedervorlageTestFactory.VERSION);
assertThat(wiedervorlage.getAttachments()).hasSize(2);
assertThat(wiedervorlage.getAttachments().get(0)).isEqualTo(BinaryFileTestFactory.FILE_ID);
......@@ -119,7 +156,7 @@ class WiedervorlageMapperTest {
}
private Wiedervorlage map() {
return mapper.fromItemMap(WiedervorlageTestFactory.createAsMap());
return mapper.fromItemMap(WiedervorlageTestFactory.createAsMap(), WiedervorlageTestFactory.VERSION);
}
}
}
\ No newline at end of file
package de.itvsh.goofy.wiedervorlage;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
......@@ -20,10 +19,11 @@ import org.mockito.Mock;
import org.mockito.Spy;
import org.springframework.context.ApplicationContext;
import static org.assertj.core.api.Assertions.*;
import de.itvsh.goofy.ApplicationTestFactory;
import de.itvsh.goofy.vorgang.GrpcVorgangAttachedItemTestFactory;
import de.itvsh.goofy.vorgang.VorgangHeaderTestFactory;
import de.itvsh.kop.pluto.common.grpc.GrpcObjectMapper;
import de.itvsh.ozg.pluto.grpc.clientAttribute.ClientAttributeServiceGrpc.ClientAttributeServiceBlockingStub;
import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcAccessPermission;
import de.itvsh.ozg.pluto.grpc.clientAttribute.GrpcDeleteClientAttributeRequest;
......@@ -47,8 +47,6 @@ class WiedervorlageRemoteServiceTest {
@Mock
private WiedervorlageMapper mapper;
@Mock
private GrpcObjectMapper grpcObjectMapper;
@Mock
private ApplicationContext applicationContext;
@Nested
......@@ -78,21 +76,14 @@ class WiedervorlageRemoteServiceTest {
@BeforeEach
void mockGrpcMapper() {
when(grpcObjectMapper.mapFromGrpc(any())).thenReturn(WiedervorlageTestFactory.createAsMap());
}
@Test
void shouldCallForGrpcObject() {
callFindById();
verify(grpcObjectMapper).mapFromGrpc(GrpcVorgangAttachedItemTestFactory.ITEM);
when(mapper.fromItem(any())).thenReturn(WiedervorlageTestFactory.create());
}
@Test
void shouldCallForWiedervorlage() {
callFindById();
verify(mapper).fromItemMap(WiedervorlageTestFactory.createAsMap());
verify(mapper).fromItem(GrpcVorgangAttachedItemTestFactory.create());
}
private void callFindById() {
......@@ -141,8 +132,7 @@ class WiedervorlageRemoteServiceTest {
@BeforeEach
void initMocks() {
when(vorgangAttachedItemServiceStub.getById(any())).thenReturn(response);
when(grpcObjectMapper.mapFromGrpc(any())).thenReturn(WiedervorlageTestFactory.createAsMap());
when(mapper.fromItemMap(any())).thenReturn(WiedervorlageTestFactory.create());
when(mapper.fromItem(any())).thenReturn(WiedervorlageTestFactory.create());
}
@Test
......@@ -152,18 +142,11 @@ class WiedervorlageRemoteServiceTest {
verify(vorgangAttachedItemServiceStub).getById(request);
}
@Test
void shouldCallGrpcObjectMapper() {
service.getById(WiedervorlageTestFactory.ID);
verify(grpcObjectMapper).mapFromGrpc(GrpcVorgangAttachedItemTestFactory.ITEM);
}
@Test
void shouldCallWiedervorlageMapper() {
service.getById(WiedervorlageTestFactory.ID);
verify(mapper).fromItemMap(WiedervorlageTestFactory.createAsMap());
verify(mapper).fromItem(GrpcVorgangAttachedItemTestFactory.create());
}
@Test
......
......@@ -46,7 +46,6 @@ public class WiedervorlageTestFactory {
public static Map<String, Object> createAsMap() {
return Map.of(
WiedervorlageMapper.ID, ID,
WiedervorlageMapper.VERSION, VERSION,
WiedervorlageMapper.DONE, String.valueOf(DONE),
WiedervorlageMapper.CREATED_BY, CREATED_BY,
WiedervorlageMapper.CREATED_BY_NAME, CREATED_BY_NAME,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment