Skip to content
Snippets Groups Projects
Commit 34e74c4a authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6259 call CollaborationService

parent 3a194d72
No related branches found
No related tags found
No related merge requests found
/*
* Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.vorgang.collaboration;
import org.springframework.stereotype.Service;
@Service
public class CollaborationService {
public String createCollaborationVorgang(CollaborationRequest request) {
return "collaboration-vorgang-id";
}
}
...@@ -25,6 +25,8 @@ package de.ozgcloud.vorgang.vorgang; ...@@ -25,6 +25,8 @@ package de.ozgcloud.vorgang.vorgang;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import de.ozgcloud.vorgang.collaboration.CollaborationRequestMapper;
import de.ozgcloud.vorgang.collaboration.CollaborationService;
import io.grpc.stub.StreamObserver; import io.grpc.stub.StreamObserver;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import net.devh.boot.grpc.server.service.GrpcService; import net.devh.boot.grpc.server.service.GrpcService;
...@@ -42,6 +44,8 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase { ...@@ -42,6 +44,8 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
private final FilterByMapper filterByMapper; private final FilterByMapper filterByMapper;
private final IncomingFileMapper incomingFileMapper; private final IncomingFileMapper incomingFileMapper;
private final IncomingFileGroupMapper incomingFileGroupMapper; private final IncomingFileGroupMapper incomingFileGroupMapper;
private final CollaborationService collaborationService;
private final CollaborationRequestMapper collaborationRequestMapper;
@Override @Override
public void startCreation(GrpcCreateVorgangRequest request, StreamObserver<GrpcCreateVorgangResponse> responseObserver) { public void startCreation(GrpcCreateVorgangRequest request, StreamObserver<GrpcCreateVorgangResponse> responseObserver) {
...@@ -109,7 +113,13 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase { ...@@ -109,7 +113,13 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
@Override @Override
public void createCollaborationVorgang(GrpcCreateCollaborationVorgangRequest request, public void createCollaborationVorgang(GrpcCreateCollaborationVorgangRequest request,
StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver) { StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver) {
if (request.hasCollaborationRequest()) {
var collaborationRequest = collaborationRequestMapper.mapFrom(request.getCollaborationRequest());
var collaborationVorgangId = collaborationService.createCollaborationVorgang(collaborationRequest);
responseObserver.onNext(GrpcCreateCollaborationVorgangResponse.newBuilder().setVorgangId(collaborationVorgangId).build());
} else {
responseObserver.onNext(GrpcCreateCollaborationVorgangResponse.newBuilder().build()); responseObserver.onNext(GrpcCreateCollaborationVorgangResponse.newBuilder().build());
}
responseObserver.onCompleted(); responseObserver.onCompleted();
} }
} }
\ No newline at end of file
...@@ -41,6 +41,11 @@ import org.mockito.Mock; ...@@ -41,6 +41,11 @@ import org.mockito.Mock;
import org.mockito.Spy; import org.mockito.Spy;
import org.springframework.data.domain.Page; 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.GrpcCollaborationRequestTestFactory;
import io.grpc.stub.StreamObserver; import io.grpc.stub.StreamObserver;
class GrpcVorgangServiceTest { class GrpcVorgangServiceTest {
...@@ -73,6 +78,10 @@ class GrpcVorgangServiceTest { ...@@ -73,6 +78,10 @@ class GrpcVorgangServiceTest {
private IncomingFileMapper incomingFileMapper; private IncomingFileMapper incomingFileMapper;
@Mock @Mock
private IncomingFileGroupMapper incomingFileGroupMapper; private IncomingFileGroupMapper incomingFileGroupMapper;
@Mock
private CollaborationService collaborationService;
@Mock
private CollaborationRequestMapper collaborationRequestMapper;
@Nested @Nested
class TestCreate { class TestCreate {
...@@ -334,20 +343,47 @@ class GrpcVorgangServiceTest { ...@@ -334,20 +343,47 @@ class GrpcVorgangServiceTest {
@Nested @Nested
class TestCreateCollaborationVorgang { class TestCreateCollaborationVorgang {
private static final GrpcCreateCollaborationVorgangRequest REQUEST = GrpcCreateCollaborationVorgangRequest.newBuilder().build();
@Mock @Mock
private StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver; private StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver;
@Captor @Captor
private ArgumentCaptor<GrpcCreateCollaborationVorgangResponse> responseCaptor; private ArgumentCaptor<GrpcCreateCollaborationVorgangResponse> responseCaptor;
@Nested
class TestCollaborationRequest {
private static final GrpcCollaborationRequest GRPC_COLLABORATION_REQUEST = GrpcCollaborationRequestTestFactory.create();
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();
@BeforeEach
void init() {
when(collaborationRequestMapper.mapFrom(any())).thenReturn(COLLABORATION_REQUEST);
when(collaborationService.createCollaborationVorgang(any())).thenReturn(COLLABORATION_VORGANG_ID);
}
@Test
void shouldCallMapCollaborationRequest() {
createCollaborationVorgang();
verify(collaborationRequestMapper).mapFrom(GRPC_COLLABORATION_REQUEST);
}
@Test
void shouldCallCreateCollaborationVorgang() {
createCollaborationVorgang();
verify(collaborationService).createCollaborationVorgang(COLLABORATION_REQUEST);
}
@Test @Test
void shouldCallOnNext() { void shouldCallOnNext() {
createCollaborationVorgang(); createCollaborationVorgang();
verify(responseObserver).onNext(responseCaptor.capture()); verify(responseObserver).onNext(responseCaptor.capture());
assertThat(responseCaptor.getValue()).isNotNull(); assertThat(responseCaptor.getValue().getVorgangId()).isEqualTo(COLLABORATION_VORGANG_ID);
} }
@Test @Test
...@@ -361,4 +397,29 @@ class GrpcVorgangServiceTest { ...@@ -361,4 +397,29 @@ class GrpcVorgangServiceTest {
service.createCollaborationVorgang(REQUEST, responseObserver); service.createCollaborationVorgang(REQUEST, responseObserver);
} }
} }
@Nested
class TestEmptyRequest {
@Test
void shouldCallOnNext() {
createCollaborationVorgang();
verify(responseObserver).onNext(responseCaptor.capture());
assertThat(responseCaptor.getValue().getVorgangId()).isEmpty();
}
@Test
void shouldCallOnCompleted() {
createCollaborationVorgang();
verify(responseObserver).onCompleted();
}
private void createCollaborationVorgang() {
service.createCollaborationVorgang(GrpcCreateCollaborationVorgangRequest.newBuilder().build(), responseObserver);
}
}
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment