Skip to content
Snippets Groups Projects
Commit 02ff9af0 authored by Jan Zickermann's avatar Jan Zickermann
Browse files

OZG-5412 XTAITCase: Remove grpcmock

parent 637af627
Branches
Tags
No related merge requests found
......@@ -63,7 +63,6 @@
<jaxb2-plugin.version>0.15.2</jaxb2-plugin.version>
<jaxb3-plugin.version>0.15.0</jaxb3-plugin.version>
<mojo-jaxb2-plugin.version>3.1.0</mojo-jaxb2-plugin.version>
<grpcmock.version>0.13.0</grpcmock.version>
<okio.version>3.9.0</okio.version>
</properties>
......@@ -124,12 +123,6 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.grpcmock</groupId>
<artifactId>grpcmock-spring-boot</artifactId>
<version>${grpcmock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
......
......@@ -87,11 +87,6 @@
<artifactId>mockwebserver</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.grpcmock</groupId>
<artifactId>grpcmock-spring-boot</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>de.ozgcloud.eingang</groupId>
<artifactId>common</artifactId>
......
package de.ozgcloud.eingang.xta;
import static org.assertj.core.api.Assertions.*;
import static org.grpcmock.GrpcMock.*;
import static org.mockito.Mockito.*;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.List;
import java.util.function.Predicate;
import java.util.Optional;
import org.grpcmock.springboot.AutoConfigureGrpcMock;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Bean;
import org.springframework.test.context.ActiveProfiles;
import de.ozgcloud.eingang.Application;
import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc;
import de.ozgcloud.vorgang.grpc.binaryFile.GrpcUploadBinaryFileRequest;
import de.ozgcloud.vorgang.grpc.binaryFile.GrpcUploadBinaryFileResponse;
import de.ozgcloud.vorgang.vorgang.GrpcCreateVorgangRequest;
import de.ozgcloud.vorgang.vorgang.GrpcCreateVorgangResponse;
import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.router.VorgangRemoteService;
import de.ozgcloud.vorgang.vorgang.GrpcEingang;
import de.ozgcloud.vorgang.vorgang.GrpcFinishCreationResponse;
import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc;
@SpringBootTest(classes = {
Application.class,
XtaITCase.ActivateXTARunnerConfig.class
})
@ActiveProfiles({ "itcase" })
@AutoConfigureGrpcMock(name = "vorgang-manager-itcase", useInProcessServer = true)
class XtaITCase {
@Autowired
......@@ -46,64 +42,29 @@ class XtaITCase {
@Autowired
private XtaRunner runner;
@MockBean
private VorgangRemoteService vorgangRemoteService;
@Captor
private ArgumentCaptor<FormData> formDataArgumentCaptor;
@Captor
private ArgumentCaptor<GrpcEingang> eingangArgumentCaptor;
@Captor
private ArgumentCaptor<Optional<String>> organisationseinheitenIdArgumentCaptor;
@DisplayName("run get xta messages")
@Nested
class TestRunGetXtaMessages {
@BeforeEach
void setup() {
mockStartVorgangCreation();
mockUploadBinaryFiles();
mockFinishVorgangCreation();
}
private void mockStartVorgangCreation() {
stubFor(
unaryMethod(VorgangServiceGrpc.getStartCreationMethod())
.willReturn(GrpcCreateVorgangResponse.getDefaultInstance()));
}
private void mockUploadBinaryFiles() {
stubFor(
clientStreamingMethod(BinaryFileServiceGrpc.getUploadBinaryFileAsStreamMethod())
.willReturn(GrpcUploadBinaryFileResponse.getDefaultInstance()));
}
private void mockFinishVorgangCreation() {
stubFor(
unaryMethod(VorgangServiceGrpc.getFinishCreationMethod())
.willReturn(GrpcFinishCreationResponse.getDefaultInstance()));
when(vorgangRemoteService.createVorgang(any(), any(), any())).thenReturn("vorgangId(unused)");
}
@AfterEach
void teardown() {
try {
expectOneVorgangCreateAndFinishCall();
expectTwoUploadCallsForXmlRepresentations();
} finally {
xtaMocker.teardownServer();
resetMappings();
}
}
private void expectOneVorgangCreateAndFinishCall() {
verifyThat(
calledMethod(VorgangServiceGrpc.getStartCreationMethod())
.withRequest(GrpcCreateVorgangRequest::hasEingang),
times(1));
verifyThat(
calledMethod(VorgangServiceGrpc.getFinishCreationMethod()),
times(1));
}
private void expectTwoUploadCallsForXmlRepresentations() {
Predicate<GrpcUploadBinaryFileRequest> hasXMLContentType = request -> request.hasMetadata() && request
.getMetadata()
.getContentType()
.contains("xml");
verifyThat(
calledMethod(BinaryFileServiceGrpc.getUploadBinaryFileAsStreamMethod())
.withRequestsContaining(hasXMLContentType),
times(2));
xtaMocker.teardownServer();
}
@DisplayName("should have three representations with pdf")
......@@ -194,12 +155,18 @@ class XtaITCase {
}
private GrpcEingang captureEingang() {
return capturedRequestsFor(
calledMethod(VorgangServiceGrpc.getStartCreationMethod()))
.getFirst()
.requests()
.getFirst()
.getEingang();
verify(vorgangRemoteService, times(1))
.createVorgang(
formDataArgumentCaptor.capture(),
eingangArgumentCaptor.capture(),
organisationseinheitenIdArgumentCaptor.capture()
);
assertThat(formDataArgumentCaptor.getValue()).isNotNull();
assertThat(eingangArgumentCaptor.getValue()).isNotNull();
assertThat(organisationseinheitenIdArgumentCaptor.getValue()).isPresent();
return eingangArgumentCaptor.getValue();
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment