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

OZG-6259 call CollaborationService

parent 3a194d72
Branches
Tags
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;
import org.springframework.data.domain.Page;
import de.ozgcloud.vorgang.collaboration.CollaborationRequestMapper;
import de.ozgcloud.vorgang.collaboration.CollaborationService;
import io.grpc.stub.StreamObserver;
import lombok.RequiredArgsConstructor;
import net.devh.boot.grpc.server.service.GrpcService;
......@@ -42,6 +44,8 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
private final FilterByMapper filterByMapper;
private final IncomingFileMapper incomingFileMapper;
private final IncomingFileGroupMapper incomingFileGroupMapper;
private final CollaborationService collaborationService;
private final CollaborationRequestMapper collaborationRequestMapper;
@Override
public void startCreation(GrpcCreateVorgangRequest request, StreamObserver<GrpcCreateVorgangResponse> responseObserver) {
......@@ -109,7 +113,13 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
@Override
public void createCollaborationVorgang(GrpcCreateCollaborationVorgangRequest request,
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.onCompleted();
}
}
\ No newline at end of file
......@@ -41,6 +41,11 @@ 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.GrpcCollaborationRequestTestFactory;
import io.grpc.stub.StreamObserver;
class GrpcVorgangServiceTest {
......@@ -73,6 +78,10 @@ class GrpcVorgangServiceTest {
private IncomingFileMapper incomingFileMapper;
@Mock
private IncomingFileGroupMapper incomingFileGroupMapper;
@Mock
private CollaborationService collaborationService;
@Mock
private CollaborationRequestMapper collaborationRequestMapper;
@Nested
class TestCreate {
......@@ -334,20 +343,47 @@ class GrpcVorgangServiceTest {
@Nested
class TestCreateCollaborationVorgang {
private static final GrpcCreateCollaborationVorgangRequest REQUEST = GrpcCreateCollaborationVorgangRequest.newBuilder().build();
@Mock
private StreamObserver<GrpcCreateCollaborationVorgangResponse> responseObserver;
@Captor
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
void shouldCallOnNext() {
createCollaborationVorgang();
verify(responseObserver).onNext(responseCaptor.capture());
assertThat(responseCaptor.getValue()).isNotNull();
assertThat(responseCaptor.getValue().getVorgangId()).isEqualTo(COLLABORATION_VORGANG_ID);
}
@Test
......@@ -361,4 +397,29 @@ class GrpcVorgangServiceTest {
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