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

OZG-5415 Add XtaRemoteITCase

parent b399b099
Branches
No related tags found
No related merge requests found
package de.ozgcloud.eingang.xta;
import static org.assertj.core.api.Assertions.*;
import static org.grpcmock.GrpcMock.*;
import java.util.List;
import org.grpcmock.springboot.AutoConfigureGrpcMock;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.annotation.Bean;
import org.springframework.test.context.ActiveProfiles;
import de.ozgcloud.eingang.Application;
import de.ozgcloud.eingang.semantik.SemantikAdapter;
import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc;
import de.ozgcloud.vorgang.grpc.binaryFile.GrpcUploadBinaryFileResponse;
import de.ozgcloud.vorgang.vorgang.GrpcCreateVorgangRequest;
import de.ozgcloud.vorgang.vorgang.GrpcCreateVorgangResponse;
import de.ozgcloud.vorgang.vorgang.GrpcEingang;
import de.ozgcloud.vorgang.vorgang.GrpcFinishCreationResponse;
import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc;
import lombok.RequiredArgsConstructor;
@Disabled("real live test - do only activate for manual testing (will empty XTA-E mailbox)")
@SpringBootTest(classes = {
Application.class,
XtaRemoteITCase.ActivateXTARunnerConfig.class,
XtaRemoteITCase.ActivateXTARunnerConfig.class
}, properties = { "ozgcloud.xta.server.name=LI33-0005",
"ozgcloud.xta.server.address=LI33-0005:3000",
"ozgcloud.xta.server.protocol=https",
"ozgcloud.xta.keystore.file=file:./KOP_SH_KIEL_DEV.p12",
"ozgcloud.xta.keystore.password=geheim" // replace this with real password
})
@ActiveProfiles({ "itcase" })
@AutoConfigureGrpcMock(name = "vorgang-manager-itcase", useInProcessServer = true)
class XtaRemoteITCase {
@Autowired
private XtaRunner runner;
@DisplayName("run get xta messages")
@Nested
class TestRunGetXtaMessages {
@BeforeEach
void setup() {
// Mock 'start vorgang creation'
stubFor(
unaryMethod(VorgangServiceGrpc.getStartCreationMethod())
.willReturn(GrpcCreateVorgangResponse.getDefaultInstance())
);
// Mock 'upload binary files'
stubFor(
clientStreamingMethod(BinaryFileServiceGrpc.getUploadBinaryFileAsStreamMethod())
.willReturn(GrpcUploadBinaryFileResponse.getDefaultInstance())
);
// Mock 'finish vorgang creation'
stubFor(
unaryMethod(VorgangServiceGrpc.getFinishCreationMethod())
.willReturn(GrpcFinishCreationResponse.getDefaultInstance())
);
}
@AfterEach
void teardown() {
resetMappings();
}
@DisplayName("should have representations")
@Test
void shouldHaveRepresentations() {
runner.runGetXtaMessages();
var eingangRequests = captureEingangRequests();
eingangRequests.forEach(eingang ->
assertThat(eingang.getNumberOfRepresentations()).isGreaterThanOrEqualTo(2)
);
}
@DisplayName("should have postfach id")
@Test
void shouldHavePostfachId() {
runner.runGetXtaMessages();
var eingangRequests = captureEingangRequests();
eingangRequests.forEach(eingang -> {
var serviceKonto = eingang
.getHeader()
.getServiceKonto();
assertThat(serviceKonto).isNotNull();
var postfachId = serviceKonto
.getPostfachAddresses(0)
.getIdentifier()
.getProperty(0)
.getValue(0);
assertThat(postfachId).hasSameSizeAs("4dd01647-b9d9-4775-1b50-08da3d83800a");
}
);
}
@DisplayName("should have organistationseinheit ID")
@Test
void shouldHaveOrganistationseinheitId() {
runner.runGetXtaMessages();
var eingangRequests = captureEingangRequests();
eingangRequests.forEach(eingang -> {
var organisationseinheitId = eingang.getZustaendigeStelle()
.getOrganisationseinheitenId();
assertThat(organisationseinheitId).isNotEmpty();
});
}
@DisplayName("should have vorgang nummer")
@Test
void shouldHaveVorgangNummer() {
runner.runGetXtaMessages();
var eingangRequests = captureEingangRequests();
eingangRequests.forEach(eingang -> {
var vorgangNummer = eingang
.getHeader()
.getVorgangNummer();
assertThat(vorgangNummer).hasSize(9);
});
}
private List<GrpcEingang> captureEingangRequests() {
return capturedRequestsFor(
calledMethod(VorgangServiceGrpc.getStartCreationMethod())
)
.getFirst()
.requests()
.stream().map(GrpcCreateVorgangRequest::getEingang)
.toList();
}
}
@RequiredArgsConstructor
static class ActivateXTARunnerConfig {
private final XtaService service;
private final SemantikAdapter semantikAdapter;
@Bean
XtaRunner xtaRunner() {
return new XtaRunner(service, semantikAdapter);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment