From 86ddf8dceeea198a3af41845e048aec644bc026f Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 5 Aug 2024 07:22:09 +0200 Subject: [PATCH] OZG-6259 get vorgang and trigger create collaboration vorgang --- ...=> CreateCollaborationVorgangRequest.java} | 7 ++- ...ateCollaborationVorgangRequestMapper.java} | 6 +- .../vorgang/vorgang/GrpcVorgangService.java | 13 +++-- .../collaboration/CollaborationITCase.java | 6 +- .../CollaborationServiceTest.java | 2 +- ...ollaborationVorgangRequestMapperTest.java} | 6 +- ...llaborationVorgangRequestTestFactory.java} | 12 ++-- .../GrpcCollaborationRequestTestFactory.java | 4 +- .../vorgang/GrpcVorgangServiceTest.java | 58 ++++++++++++++++--- 9 files changed, 81 insertions(+), 33 deletions(-) rename vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/{CollaborationRequest.java => CreateCollaborationVorgangRequest.java} (88%) rename vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/{CollaborationRequestMapper.java => CreateCollaborationVorgangRequestMapper.java} (83%) rename vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/{CollaborationRequestMapperTest.java => CreateCollaborationVorgangRequestMapperTest.java} (79%) rename vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/{CollaborationRequestTestFactory.java => CreateCollaborationVorgangRequestTestFactory.java} (76%) diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRequest.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequest.java similarity index 88% rename from vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRequest.java rename to vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequest.java index 40a39954a..44f61fed6 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRequest.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequest.java @@ -23,14 +23,15 @@ */ package de.ozgcloud.vorgang.collaboration; +import de.ozgcloud.vorgang.vorgang.Vorgang; import lombok.Builder; import lombok.Getter; -@Builder +@Builder(toBuilder = true) @Getter -public class CollaborationRequest { +public class CreateCollaborationVorgangRequest { - private String vorgangId; + private Vorgang vorgang; private int collaborationLevel; private String zustaendigeStelle; } diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestMapper.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapper.java similarity index 83% rename from vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestMapper.java rename to vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapper.java index 669c10135..28c23c3d2 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestMapper.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapper.java @@ -24,12 +24,14 @@ package de.ozgcloud.vorgang.collaboration; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; import org.mapstruct.ReportingPolicy; import de.ozgcloud.vorgang.vorgang.GrpcCollaborationRequest; @Mapper(unmappedTargetPolicy = ReportingPolicy.WARN) -public interface CollaborationRequestMapper { +public interface CreateCollaborationVorgangRequestMapper { - CollaborationRequest mapFrom(GrpcCollaborationRequest grpcCollaborationRequest); + @Mapping(target = "vorgang", ignore = true) + CreateCollaborationVorgangRequest mapFrom(GrpcCollaborationRequest grpcCollaborationRequest); } diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java index ae61d19be..7236e43b1 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangService.java @@ -25,8 +25,9 @@ package de.ozgcloud.vorgang.vorgang; import org.springframework.data.domain.Page; -import de.ozgcloud.vorgang.collaboration.CollaborationRequestMapper; import de.ozgcloud.vorgang.collaboration.CollaborationService; +import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest; +import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequestMapper; import io.grpc.stub.StreamObserver; import lombok.RequiredArgsConstructor; import net.devh.boot.grpc.server.service.GrpcService; @@ -45,7 +46,7 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase { private final IncomingFileMapper incomingFileMapper; private final IncomingFileGroupMapper incomingFileGroupMapper; private final CollaborationService collaborationService; - private final CollaborationRequestMapper collaborationRequestMapper; + private final CreateCollaborationVorgangRequestMapper createCollaborationVorgangRequestMapper; @Override public void startCreation(GrpcCreateVorgangRequest request, StreamObserver<GrpcCreateVorgangResponse> responseObserver) { @@ -114,12 +115,16 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase { public void createCollaborationVorgang(GrpcCreateCollaborationVorgangRequest request, StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver) { if (request.hasCollaborationRequest()) { - var collaborationRequest = collaborationRequestMapper.mapFrom(request.getCollaborationRequest()); - var collaborationVorgangId = collaborationService.createCollaborationVorgang(collaborationRequest); + var collaborationVorgangId = collaborationService.createCollaborationVorgang(buildCreateCollaborationVorgangRequest(request)); responseObserver.onNext(GrpcCreateCollaborationVorgangResponse.newBuilder().setVorgangId(collaborationVorgangId).build()); } else { responseObserver.onNext(GrpcCreateCollaborationVorgangResponse.newBuilder().build()); } responseObserver.onCompleted(); } + + CreateCollaborationVorgangRequest buildCreateCollaborationVorgangRequest(GrpcCreateCollaborationVorgangRequest request) { + var vorgang = vorgangService.getById(request.getCollaborationRequest().getVorgangId()); + return createCollaborationVorgangRequestMapper.mapFrom(request.getCollaborationRequest()).toBuilder().vorgang(vorgang).build(); + } } \ No newline at end of file diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java index 4a89482ef..cb084194b 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationITCase.java @@ -124,9 +124,9 @@ class CollaborationITCase { var collaborationVorgang = loadCollaborationVorgang(vorgangId); assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getCollaborationLevel) - .isEqualTo(CollaborationRequestTestFactory.COLLABORATION_LEVEL); + .isEqualTo(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL); assertThat(collaborationVorgang.getHeader()).extracting(VorgangHead::getOrganisationsEinheitId) - .isEqualTo(CollaborationRequestTestFactory.ZUSTAENDIGE_STELLE); + .isEqualTo(CreateCollaborationVorgangRequestTestFactory.ZUSTAENDIGE_STELLE); assertThat(collaborationVorgang.getClientAttributes()).isEmpty(); } @@ -139,7 +139,7 @@ class CollaborationITCase { .bodyObject(Map.of( "titel", TITEL, "anfrage", ANFRAGE, - "zustaendigeStelle", CollaborationRequestTestFactory.ZUSTAENDIGE_STELLE + "zustaendigeStelle", CreateCollaborationVorgangRequestTestFactory.ZUSTAENDIGE_STELLE )) .build(); } diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java index 7e2ab2c24..ac0aa99d2 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationServiceTest.java @@ -51,7 +51,7 @@ class CollaborationServiceTest { @Nested class TestCreateCollaborationVorgang { - private static final CollaborationRequest COLLABORATION_REQUEST = CollaborationRequestTestFactory.create(); + private static final CreateCollaborationVorgangRequest COLLABORATION_REQUEST = CreateCollaborationVorgangRequestTestFactory.create(); private static final String COLLABORATION_VORGANG_ID = "collaboratino-vorgang-id"; @Mock diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestMapperTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapperTest.java similarity index 79% rename from vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestMapperTest.java rename to vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapperTest.java index f47f2bea7..45e76253f 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestMapperTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestMapperTest.java @@ -28,14 +28,14 @@ import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; import org.mapstruct.factory.Mappers; -class CollaborationRequestMapperTest { +class CreateCollaborationVorgangRequestMapperTest { - private final CollaborationRequestMapper mapper = Mappers.getMapper(CollaborationRequestMapper.class); + private final CreateCollaborationVorgangRequestMapper mapper = Mappers.getMapper(CreateCollaborationVorgangRequestMapper.class); @Test void shouldMapFromGrpc() { var result = mapper.mapFrom(GrpcCollaborationRequestTestFactory.create()); - assertThat(result).usingRecursiveComparison().isEqualTo(CollaborationRequestTestFactory.create()); + assertThat(result).usingRecursiveComparison().ignoringFields("vorgang").isEqualTo(CreateCollaborationVorgangRequestTestFactory.create()); } } \ No newline at end of file diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestTestFactory.java similarity index 76% rename from vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestTestFactory.java rename to vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestTestFactory.java index 2028349a6..d28796cd6 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CollaborationRequestTestFactory.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/CreateCollaborationVorgangRequestTestFactory.java @@ -23,21 +23,21 @@ */ package de.ozgcloud.vorgang.collaboration; -import de.ozgcloud.vorgang.collaboration.CollaborationRequest.CollaborationRequestBuilder; +import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest.CreateCollaborationVorgangRequestBuilder; import de.ozgcloud.vorgang.vorgang.VorgangTestFactory; -public class CollaborationRequestTestFactory { +public class CreateCollaborationVorgangRequestTestFactory { public static final int COLLABORATION_LEVEL = 1; public static final String ZUSTAENDIGE_STELLE = "zustaendige-stelle"; - public static CollaborationRequest create() { + public static CreateCollaborationVorgangRequest create() { return createBuilder().build(); } - public static CollaborationRequestBuilder createBuilder() { - return CollaborationRequest.builder() - .vorgangId(VorgangTestFactory.ID) + public static CreateCollaborationVorgangRequestBuilder createBuilder() { + return CreateCollaborationVorgangRequest.builder() + .vorgang(VorgangTestFactory.create()) .zustaendigeStelle(ZUSTAENDIGE_STELLE) .collaborationLevel(COLLABORATION_LEVEL); } diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCollaborationRequestTestFactory.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCollaborationRequestTestFactory.java index 67d6a8a18..0fabb30ae 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCollaborationRequestTestFactory.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/collaboration/GrpcCollaborationRequestTestFactory.java @@ -35,7 +35,7 @@ public class GrpcCollaborationRequestTestFactory { public static GrpcCollaborationRequest.Builder createBuilder() { return GrpcCollaborationRequest.newBuilder() .setVorgangId(VorgangTestFactory.ID) - .setZustaendigeStelle(CollaborationRequestTestFactory.ZUSTAENDIGE_STELLE) - .setCollaborationLevel(CollaborationRequestTestFactory.COLLABORATION_LEVEL); + .setZustaendigeStelle(CreateCollaborationVorgangRequestTestFactory.ZUSTAENDIGE_STELLE) + .setCollaborationLevel(CreateCollaborationVorgangRequestTestFactory.COLLABORATION_LEVEL); } } diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java index 4934bc48f..11ec08b24 100644 --- a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/vorgang/GrpcVorgangServiceTest.java @@ -41,10 +41,10 @@ import org.mockito.Mock; import org.mockito.Spy; import org.springframework.data.domain.Page; -import de.ozgcloud.vorgang.collaboration.CollaborationRequest; -import de.ozgcloud.vorgang.collaboration.CollaborationRequestMapper; -import de.ozgcloud.vorgang.collaboration.CollaborationRequestTestFactory; import de.ozgcloud.vorgang.collaboration.CollaborationService; +import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequest; +import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequestMapper; +import de.ozgcloud.vorgang.collaboration.CreateCollaborationVorgangRequestTestFactory; import de.ozgcloud.vorgang.collaboration.GrpcCollaborationRequestTestFactory; import io.grpc.stub.StreamObserver; @@ -81,7 +81,7 @@ class GrpcVorgangServiceTest { @Mock private CollaborationService collaborationService; @Mock - private CollaborationRequestMapper collaborationRequestMapper; + private CreateCollaborationVorgangRequestMapper createCollaborationVorgangRequestMapper; @Nested class TestCreate { @@ -356,26 +356,26 @@ class GrpcVorgangServiceTest { private static final GrpcCreateCollaborationVorgangRequest REQUEST = GrpcCreateCollaborationVorgangRequest.newBuilder() .setCollaborationRequest(GRPC_COLLABORATION_REQUEST).build(); private static final String COLLABORATION_VORGANG_ID = "collaboration-vorgang-id"; - private static final CollaborationRequest COLLABORATION_REQUEST = CollaborationRequestTestFactory.create(); + private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create(); @BeforeEach void init() { - when(collaborationRequestMapper.mapFrom(any())).thenReturn(COLLABORATION_REQUEST); + doReturn(CREATE_COLLABORATION_VORGANG_REQUEST).when(service).buildCreateCollaborationVorgangRequest(any()); when(collaborationService.createCollaborationVorgang(any())).thenReturn(COLLABORATION_VORGANG_ID); } @Test - void shouldCallMapCollaborationRequest() { + void shouldCallBuildCreateCollaborationVorgangRequest() { createCollaborationVorgang(); - verify(collaborationRequestMapper).mapFrom(GRPC_COLLABORATION_REQUEST); + verify(service).buildCreateCollaborationVorgangRequest(REQUEST); } @Test void shouldCallCreateCollaborationVorgang() { createCollaborationVorgang(); - verify(collaborationService).createCollaborationVorgang(COLLABORATION_REQUEST); + verify(collaborationService).createCollaborationVorgang(CREATE_COLLABORATION_VORGANG_REQUEST); } @Test @@ -422,4 +422,44 @@ class GrpcVorgangServiceTest { } } + + @Nested + class TestBuildCreateCollaborationVorgangRequest { + + private static final GrpcCollaborationRequest GRPC_COLLABORATION_REQUEST = GrpcCollaborationRequestTestFactory.create(); + private static final CreateCollaborationVorgangRequest CREATE_COLLABORATION_VORGANG_REQUEST = CreateCollaborationVorgangRequestTestFactory.create(); + private static final Vorgang VORGANG = VorgangTestFactory.create(); + + @BeforeEach + void init() { + when(createCollaborationVorgangRequestMapper.mapFrom(any())).thenReturn(CREATE_COLLABORATION_VORGANG_REQUEST); + when(vorgangService.getById(anyString())).thenReturn(VORGANG); + } + + @Test + void shouldCallGetVorgang() { + buildCreateCollaborationVorgangRequest(); + + verify(vorgangService).getById(VorgangTestFactory.ID); + } + + @Test + void shouldCallRequestMapper() { + buildCreateCollaborationVorgangRequest(); + + verify(createCollaborationVorgangRequestMapper).mapFrom(GRPC_COLLABORATION_REQUEST); + } + + @Test + void shouldSetVorgang() { + var result = buildCreateCollaborationVorgangRequest(); + + assertThat(result.getVorgang()).isSameAs(VORGANG); + } + + private CreateCollaborationVorgangRequest buildCreateCollaborationVorgangRequest() { + return service.buildCreateCollaborationVorgangRequest(GrpcCreateCollaborationVorgangRequest.newBuilder() + .setCollaborationRequest(GRPC_COLLABORATION_REQUEST).build()); + } + } } \ No newline at end of file -- GitLab