Skip to content
Snippets Groups Projects
Commit 8cae47e3 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-1523 OZG-2523 Erstellen/Editieren und Laden auf

VorgangAttachedAttribute umgestellt
parent 442f7526
No related branches found
No related tags found
No related merge requests found
...@@ -5,62 +5,48 @@ import java.util.stream.Stream; ...@@ -5,62 +5,48 @@ import java.util.stream.Stream;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import de.itvsh.goofy.common.callcontext.ContextService; import de.itvsh.goofy.GoofyServerApplication;
import de.itvsh.ozg.pluto.grpc.command.GrpcCreateCommandRequest; import de.itvsh.ozg.pluto.common.GrpcObjectMapper;
import de.itvsh.ozg.pluto.grpc.command.GrpcOrder; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemRequest;
import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdRequest; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemResponse;
import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdResponse; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItemRequest;
import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarRequest; import de.itvsh.ozg.pluto.vorgangAttachedItem.VorgangAttachedItemServiceGrpc.VorgangAttachedItemServiceBlockingStub;
import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarResponse;
import de.itvsh.ozg.pluto.kommentar.KommentarServiceGrpc.KommentarServiceBlockingStub;
import net.devh.boot.grpc.client.inject.GrpcClient; import net.devh.boot.grpc.client.inject.GrpcClient;
@Service @Service
class KommentarRemoteService { class KommentarRemoteService {
public static final String ITEM_NAME = "Kommentar"; public static final String ITEM_NAME = "Kommentar";
@GrpcClient("pluto") @GrpcClient(GoofyServerApplication.GRPC_CLIENT)
private KommentarServiceBlockingStub serviceStub; private VorgangAttachedItemServiceBlockingStub vorgangAttachedItemServiceStub;
@Autowired
private ContextService contextService;
@Autowired @Autowired
private KommentarMapper mapper; private KommentarMapper mapper;
@Autowired
private GrpcObjectMapper grpcObjectMapper;
public Stream<Kommentar> findByVorgangId(String vorgangId) { public Stream<Kommentar> findByVorgangId(String vorgangId) {
GrpcFindKommentarsByVorgangIdResponse response = serviceStub GrpcFindVorgangAttachedItemResponse response = vorgangAttachedItemServiceStub
.findKommentarsByVorgangId(buildFindKommentarsByVorgangRequest(vorgangId)); .find(buildFindRequest(vorgangId));
return response.getKommentarsList().stream().map(mapper::toKommentar); return response.getVorgangAttachedItemsList().stream()
.map(item -> grpcObjectMapper.mapFromGrpc(item.getItem()))
.map(mapper::fromItemMap);
} }
private GrpcFindKommentarsByVorgangIdRequest buildFindKommentarsByVorgangRequest(String vorgangId) { GrpcFindVorgangAttachedItemRequest buildFindRequest(String vorgangId) {
return GrpcFindKommentarsByVorgangIdRequest.newBuilder().setVorgangId(vorgangId).build(); return GrpcFindVorgangAttachedItemRequest.newBuilder()
.setVorgangId(vorgangId)
.setItemName(ITEM_NAME)
.build();
} }
public Kommentar getById(String kommentarId) { public Kommentar getById(String kommentarId) {
GrpcGetKommentarResponse response = serviceStub.getKommentar(buildGetKommentarRequest(kommentarId)); var response = vorgangAttachedItemServiceStub.getById(buildRequest(kommentarId));
return mapper.toKommentar(response.getKommentar());
}
private GrpcGetKommentarRequest buildGetKommentarRequest(String kommentarId) { return mapper.fromItemMap(grpcObjectMapper.mapFromGrpc(response.getVorgangAttachedItem().getItem()));
return GrpcGetKommentarRequest.newBuilder().setId(kommentarId).build();
} }
@Deprecated private GrpcVorgangAttachedItemRequest buildRequest(String kommentarId) {
public KommentarCommand sendKommentarCommand(String relationId, KommentarCommand command) { return GrpcVorgangAttachedItemRequest.newBuilder().setId(kommentarId).build();
var request = buildCreateCommandRequest(relationId, command);
var response = serviceStub.createCommand(request);
return mapper.toKommentarCommand(response.getCommand());
}
GrpcCreateCommandRequest buildCreateCommandRequest(String relationId, KommentarCommand command) {
return GrpcCreateCommandRequest.newBuilder()
.setCallContext(contextService.createCallContext())
.setRelationId(relationId)
.setOrder(GrpcOrder.valueOf(command.getOrder().name()))
.setKommentar(mapper.toGrpcKommentar(command.getKommentar()))
.build();
} }
} }
...@@ -2,8 +2,6 @@ package de.itvsh.goofy.kommentar; ...@@ -2,8 +2,6 @@ package de.itvsh.goofy.kommentar;
import java.util.stream.Stream; import java.util.stream.Stream;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
...@@ -22,9 +20,4 @@ class KommentarService { ...@@ -22,9 +20,4 @@ class KommentarService {
public Kommentar getById(String kommentarId) { public Kommentar getById(String kommentarId) {
return remoteService.getById(kommentarId); return remoteService.getById(kommentarId);
} }
@Deprecated
public KommentarCommand createCommand(String relationId, @Valid KommentarCommand command) {
return remoteService.sendKommentarCommand(relationId, command);
}
} }
...@@ -3,28 +3,24 @@ package de.itvsh.goofy.kommentar; ...@@ -3,28 +3,24 @@ package de.itvsh.goofy.kommentar;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
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.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.Spy; import org.mockito.Spy;
import de.itvsh.goofy.common.callcontext.ContextService; import de.itvsh.goofy.vorgang.GrpcVorgangAttachedItemTestFactory;
import de.itvsh.goofy.common.command.GrpcCommandResponseTestFactory;
import de.itvsh.goofy.vorgang.VorgangHeaderTestFactory; import de.itvsh.goofy.vorgang.VorgangHeaderTestFactory;
import de.itvsh.ozg.pluto.grpc.command.GrpcCallContext; import de.itvsh.ozg.pluto.common.GrpcObjectMapper;
import de.itvsh.ozg.pluto.grpc.command.GrpcCommandResponse; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemRequest;
import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdRequest; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemResponse;
import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdResponse; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItem;
import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarRequest; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItemRequest;
import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarResponse; import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItemResponse;
import de.itvsh.ozg.pluto.kommentar.GrpcKommentar; import de.itvsh.ozg.pluto.vorgangAttachedItem.VorgangAttachedItemServiceGrpc.VorgangAttachedItemServiceBlockingStub;
import de.itvsh.ozg.pluto.kommentar.KommentarServiceGrpc.KommentarServiceBlockingStub;
class KommentarRemoteServiceTest { class KommentarRemoteServiceTest {
...@@ -33,33 +29,34 @@ class KommentarRemoteServiceTest { ...@@ -33,33 +29,34 @@ class KommentarRemoteServiceTest {
private KommentarRemoteService service; private KommentarRemoteService service;
@Mock @Mock
private KommentarMapper mapper; private VorgangAttachedItemServiceBlockingStub vorgangAttachedItemServiceStub;
@Mock @Mock
private KommentarServiceBlockingStub serviceStub; private KommentarMapper mapper;
@Mock @Mock
private ContextService contextService; private GrpcObjectMapper grpcObjectMapper;
private GrpcKommentar kommentar = GrpcKommentarTestFactory.create(); private GrpcVorgangAttachedItem kommentar = GrpcVorgangAttachedItemTestFactory.create();
@Nested @Nested
class TestFindByVorgangId { class TestFindByVorgangId {
private GrpcFindKommentarsByVorgangIdRequest request = GrpcFindKommentarsByVorgangIdRequest.newBuilder() private GrpcFindVorgangAttachedItemRequest request = GrpcFindVorgangAttachedItemRequest.newBuilder()
.setVorgangId(VorgangHeaderTestFactory.ID).build(); .setVorgangId(VorgangHeaderTestFactory.ID).setItemName(KommentarRemoteService.ITEM_NAME).build();
private GrpcFindKommentarsByVorgangIdResponse response = GrpcFindKommentarsByVorgangIdResponse.newBuilder() private GrpcFindVorgangAttachedItemResponse response = GrpcFindVorgangAttachedItemResponse.newBuilder()
.addKommentars(kommentar) .clearVorgangAttachedItems()
.addKommentars(kommentar).build(); .addVorgangAttachedItems(kommentar)
.addVorgangAttachedItems(kommentar).build();
@BeforeEach @BeforeEach
void mockStub() { void mockStub() {
when(serviceStub.findKommentarsByVorgangId(any())).thenReturn(response); when(vorgangAttachedItemServiceStub.find(any())).thenReturn(response);
} }
@Test @Test
void shouldCallStub() { void shouldCallStub() {
service.findByVorgangId(VorgangHeaderTestFactory.ID); service.findByVorgangId(VorgangHeaderTestFactory.ID);
verify(serviceStub).findKommentarsByVorgangId(request); verify(vorgangAttachedItemServiceStub).find(request);
} }
@Test @Test
...@@ -67,78 +64,37 @@ class KommentarRemoteServiceTest { ...@@ -67,78 +64,37 @@ class KommentarRemoteServiceTest {
Stream<Kommentar> result = service.findByVorgangId(VorgangHeaderTestFactory.ID); Stream<Kommentar> result = service.findByVorgangId(VorgangHeaderTestFactory.ID);
collectStreamElementsToTriggerLazyStream(result); collectStreamElementsToTriggerLazyStream(result);
verify(mapper, times(2)).toKommentar(kommentar); verify(mapper, times(2)).fromItemMap(any());
} }
private void collectStreamElementsToTriggerLazyStream(Stream<Kommentar> stream) { private void collectStreamElementsToTriggerLazyStream(Stream<Kommentar> stream) {
stream.collect(Collectors.toList()); stream.toList();
} }
} }
@Nested @Nested
class TestGetById { class TestGetById {
GrpcVorgangAttachedItemResponse response = GrpcVorgangAttachedItemResponse.newBuilder()
private GrpcGetKommentarRequest request = GrpcGetKommentarRequest.newBuilder().setId(KommentarTestFactory.ID).build(); .setVorgangAttachedItem(GrpcVorgangAttachedItemTestFactory.create()).build();
private GrpcGetKommentarResponse response = GrpcGetKommentarResponse.newBuilder().setKommentar(kommentar).build(); GrpcVorgangAttachedItemRequest request = GrpcVorgangAttachedItemRequest.newBuilder().setId(KommentarTestFactory.ID).build();
@BeforeEach @BeforeEach
void mockStub() { void mockStub() {
when(serviceStub.getKommentar(any())).thenReturn(response); when(vorgangAttachedItemServiceStub.getById(any())).thenReturn(response);
} }
@Test @Test
void shouldCallStub() { void shouldCallStub() {
service.getById(KommentarTestFactory.ID); service.getById(KommentarTestFactory.ID);
verify(serviceStub).getKommentar(request); verify(vorgangAttachedItemServiceStub).getById(request);
} }
@Test @Test
void shouldCallMapper() { void shouldCallMapper() {
service.getById(KommentarTestFactory.ID); service.getById(KommentarTestFactory.ID);
verify(mapper).toKommentar(kommentar); verify(mapper).fromItemMap(any());
}
}
@Nested
class TestSendKommentarCommand {
private GrpcCallContext callContext = GrpcCallContext.newBuilder().build();
private GrpcCommandResponse response = GrpcCommandResponseTestFactory.createBuilder().build();
@BeforeEach
void initTest() {
when(serviceStub.createCommand(any())).thenReturn(response);
when(contextService.createCallContext()).thenReturn(callContext);
when(mapper.toGrpcKommentar(any())).thenReturn(GrpcKommentarTestFactory.create());
when(mapper.toKommentarCommand(any())).thenReturn(KommentarCommandTestFactory.create());
}
@Test
@DisplayName("Should call buildCreateCommandRequest with VorgangId")
void shouldCallCreateRequestWithVorgangId() {
doRequest();
verify(service).buildCreateCommandRequest(eq(VorgangHeaderTestFactory.ID), any());
}
@Test
void shouldCallStub() {
doRequest();
verify(serviceStub).createCommand(any());
}
@Test
void shouldMapResult() {
doRequest();
verify(mapper).toKommentarCommand(any());
}
private void doRequest() {
service.sendKommentarCommand(VorgangHeaderTestFactory.ID, KommentarCommandTestFactory.create());
} }
} }
} }
package de.itvsh.goofy.kommentar; package de.itvsh.goofy.kommentar;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
...@@ -40,27 +38,4 @@ class KommentarServiceTest { ...@@ -40,27 +38,4 @@ class KommentarServiceTest {
verify(remoteService).findByVorgangId(VorgangHeaderTestFactory.ID); verify(remoteService).findByVorgangId(VorgangHeaderTestFactory.ID);
} }
} }
@Nested
class TestCreateCommand {
@Test
void shouldCallRemoteService() {
KommentarCommand command = KommentarCommandTestFactory.create();
service.createCommand(VorgangHeaderTestFactory.ID, command);
verify(remoteService).sendKommentarCommand(VorgangHeaderTestFactory.ID, command);
}
@Test
void shouldReturnCorrectResult() {
KommentarCommand resultFromRemoteService = KommentarCommandTestFactory.create();
when(remoteService.sendKommentarCommand(anyString(), any())).thenReturn(resultFromRemoteService);
KommentarCommand resultFromService = service.createCommand(VorgangHeaderTestFactory.ID, KommentarCommandTestFactory.create());
assertThat(resultFromService).isSameAs(resultFromRemoteService);
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment