diff --git a/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarRemoteService.java b/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarRemoteService.java index 9547f7f5a663f62c906bdf0978f6891a375d71bd..a4a1325bb141a6bdc8c86966ed92b5413ebd2df8 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarRemoteService.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarRemoteService.java @@ -5,62 +5,48 @@ import java.util.stream.Stream; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import de.itvsh.goofy.common.callcontext.ContextService; -import de.itvsh.ozg.pluto.grpc.command.GrpcCreateCommandRequest; -import de.itvsh.ozg.pluto.grpc.command.GrpcOrder; -import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdRequest; -import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdResponse; -import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarRequest; -import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarResponse; -import de.itvsh.ozg.pluto.kommentar.KommentarServiceGrpc.KommentarServiceBlockingStub; +import de.itvsh.goofy.GoofyServerApplication; +import de.itvsh.ozg.pluto.common.GrpcObjectMapper; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemRequest; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemResponse; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItemRequest; +import de.itvsh.ozg.pluto.vorgangAttachedItem.VorgangAttachedItemServiceGrpc.VorgangAttachedItemServiceBlockingStub; import net.devh.boot.grpc.client.inject.GrpcClient; @Service class KommentarRemoteService { public static final String ITEM_NAME = "Kommentar"; - @GrpcClient("pluto") - private KommentarServiceBlockingStub serviceStub; - @Autowired - private ContextService contextService; + @GrpcClient(GoofyServerApplication.GRPC_CLIENT) + private VorgangAttachedItemServiceBlockingStub vorgangAttachedItemServiceStub; @Autowired private KommentarMapper mapper; + @Autowired + private GrpcObjectMapper grpcObjectMapper; public Stream<Kommentar> findByVorgangId(String vorgangId) { - GrpcFindKommentarsByVorgangIdResponse response = serviceStub - .findKommentarsByVorgangId(buildFindKommentarsByVorgangRequest(vorgangId)); + GrpcFindVorgangAttachedItemResponse response = vorgangAttachedItemServiceStub + .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) { - return GrpcFindKommentarsByVorgangIdRequest.newBuilder().setVorgangId(vorgangId).build(); + GrpcFindVorgangAttachedItemRequest buildFindRequest(String vorgangId) { + return GrpcFindVorgangAttachedItemRequest.newBuilder() + .setVorgangId(vorgangId) + .setItemName(ITEM_NAME) + .build(); } public Kommentar getById(String kommentarId) { - GrpcGetKommentarResponse response = serviceStub.getKommentar(buildGetKommentarRequest(kommentarId)); - - return mapper.toKommentar(response.getKommentar()); - } + var response = vorgangAttachedItemServiceStub.getById(buildRequest(kommentarId)); - private GrpcGetKommentarRequest buildGetKommentarRequest(String kommentarId) { - return GrpcGetKommentarRequest.newBuilder().setId(kommentarId).build(); + return mapper.fromItemMap(grpcObjectMapper.mapFromGrpc(response.getVorgangAttachedItem().getItem())); } - @Deprecated - public KommentarCommand sendKommentarCommand(String relationId, KommentarCommand command) { - 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(); + private GrpcVorgangAttachedItemRequest buildRequest(String kommentarId) { + return GrpcVorgangAttachedItemRequest.newBuilder().setId(kommentarId).build(); } } diff --git a/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarService.java b/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarService.java index f8e26878b8be7246bea83f0a16d57d08bfc7879f..8b14e5f2262ef7a7628d9c2526f3704fa9654707 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarService.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/kommentar/KommentarService.java @@ -2,8 +2,6 @@ package de.itvsh.goofy.kommentar; import java.util.stream.Stream; -import javax.validation.Valid; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -22,9 +20,4 @@ class KommentarService { public Kommentar getById(String kommentarId) { return remoteService.getById(kommentarId); } - - @Deprecated - public KommentarCommand createCommand(String relationId, @Valid KommentarCommand command) { - return remoteService.sendKommentarCommand(relationId, command); - } } diff --git a/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarRemoteServiceTest.java b/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarRemoteServiceTest.java index 4e30b113e9e504fd110bda0daf2a9cdca21a1440..85a76f10af93ca2aa0eec16c304c5e48d97ab034 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarRemoteServiceTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarRemoteServiceTest.java @@ -3,28 +3,24 @@ package de.itvsh.goofy.kommentar; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import java.util.stream.Collectors; import java.util.stream.Stream; 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.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; -import de.itvsh.goofy.common.callcontext.ContextService; -import de.itvsh.goofy.common.command.GrpcCommandResponseTestFactory; +import de.itvsh.goofy.vorgang.GrpcVorgangAttachedItemTestFactory; import de.itvsh.goofy.vorgang.VorgangHeaderTestFactory; -import de.itvsh.ozg.pluto.grpc.command.GrpcCallContext; -import de.itvsh.ozg.pluto.grpc.command.GrpcCommandResponse; -import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdRequest; -import de.itvsh.ozg.pluto.kommentar.GrpcFindKommentarsByVorgangIdResponse; -import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarRequest; -import de.itvsh.ozg.pluto.kommentar.GrpcGetKommentarResponse; -import de.itvsh.ozg.pluto.kommentar.GrpcKommentar; -import de.itvsh.ozg.pluto.kommentar.KommentarServiceGrpc.KommentarServiceBlockingStub; +import de.itvsh.ozg.pluto.common.GrpcObjectMapper; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemRequest; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcFindVorgangAttachedItemResponse; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItem; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItemRequest; +import de.itvsh.ozg.pluto.vorgangAttachedItem.GrpcVorgangAttachedItemResponse; +import de.itvsh.ozg.pluto.vorgangAttachedItem.VorgangAttachedItemServiceGrpc.VorgangAttachedItemServiceBlockingStub; class KommentarRemoteServiceTest { @@ -33,33 +29,34 @@ class KommentarRemoteServiceTest { private KommentarRemoteService service; @Mock - private KommentarMapper mapper; + private VorgangAttachedItemServiceBlockingStub vorgangAttachedItemServiceStub; @Mock - private KommentarServiceBlockingStub serviceStub; + private KommentarMapper mapper; @Mock - private ContextService contextService; + private GrpcObjectMapper grpcObjectMapper; - private GrpcKommentar kommentar = GrpcKommentarTestFactory.create(); + private GrpcVorgangAttachedItem kommentar = GrpcVorgangAttachedItemTestFactory.create(); @Nested class TestFindByVorgangId { - private GrpcFindKommentarsByVorgangIdRequest request = GrpcFindKommentarsByVorgangIdRequest.newBuilder() - .setVorgangId(VorgangHeaderTestFactory.ID).build(); - private GrpcFindKommentarsByVorgangIdResponse response = GrpcFindKommentarsByVorgangIdResponse.newBuilder() - .addKommentars(kommentar) - .addKommentars(kommentar).build(); + private GrpcFindVorgangAttachedItemRequest request = GrpcFindVorgangAttachedItemRequest.newBuilder() + .setVorgangId(VorgangHeaderTestFactory.ID).setItemName(KommentarRemoteService.ITEM_NAME).build(); + private GrpcFindVorgangAttachedItemResponse response = GrpcFindVorgangAttachedItemResponse.newBuilder() + .clearVorgangAttachedItems() + .addVorgangAttachedItems(kommentar) + .addVorgangAttachedItems(kommentar).build(); @BeforeEach void mockStub() { - when(serviceStub.findKommentarsByVorgangId(any())).thenReturn(response); + when(vorgangAttachedItemServiceStub.find(any())).thenReturn(response); } @Test void shouldCallStub() { service.findByVorgangId(VorgangHeaderTestFactory.ID); - verify(serviceStub).findKommentarsByVorgangId(request); + verify(vorgangAttachedItemServiceStub).find(request); } @Test @@ -67,78 +64,37 @@ class KommentarRemoteServiceTest { Stream<Kommentar> result = service.findByVorgangId(VorgangHeaderTestFactory.ID); collectStreamElementsToTriggerLazyStream(result); - verify(mapper, times(2)).toKommentar(kommentar); + verify(mapper, times(2)).fromItemMap(any()); } private void collectStreamElementsToTriggerLazyStream(Stream<Kommentar> stream) { - stream.collect(Collectors.toList()); + stream.toList(); } } @Nested class TestGetById { - - private GrpcGetKommentarRequest request = GrpcGetKommentarRequest.newBuilder().setId(KommentarTestFactory.ID).build(); - private GrpcGetKommentarResponse response = GrpcGetKommentarResponse.newBuilder().setKommentar(kommentar).build(); + GrpcVorgangAttachedItemResponse response = GrpcVorgangAttachedItemResponse.newBuilder() + .setVorgangAttachedItem(GrpcVorgangAttachedItemTestFactory.create()).build(); + GrpcVorgangAttachedItemRequest request = GrpcVorgangAttachedItemRequest.newBuilder().setId(KommentarTestFactory.ID).build(); @BeforeEach void mockStub() { - when(serviceStub.getKommentar(any())).thenReturn(response); + when(vorgangAttachedItemServiceStub.getById(any())).thenReturn(response); } @Test void shouldCallStub() { service.getById(KommentarTestFactory.ID); - verify(serviceStub).getKommentar(request); + verify(vorgangAttachedItemServiceStub).getById(request); } @Test void shouldCallMapper() { service.getById(KommentarTestFactory.ID); - verify(mapper).toKommentar(kommentar); - } - } - - @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()); + verify(mapper).fromItemMap(any()); } } } diff --git a/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarServiceTest.java b/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarServiceTest.java index 7d9853445c31029cbb39aace9a9e75a4bfb5937b..d7193d38b9d8ba7ae8385d7e2414f0e42a2d45e8 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarServiceTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/kommentar/KommentarServiceTest.java @@ -1,7 +1,5 @@ package de.itvsh.goofy.kommentar; -import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import org.junit.jupiter.api.Nested; @@ -40,27 +38,4 @@ class KommentarServiceTest { 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); - } - } }