aboutsummaryrefslogtreecommitdiff
path: root/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java')
-rw-r--r--connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java69
1 files changed, 65 insertions, 4 deletions
diff --git a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
index 37a389b4..b4f39985 100644
--- a/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
+++ b/connector/src/test/java/at/asitplus/eidas/specific/connector/test/FullStartUpAndProcessTest.java
@@ -7,6 +7,7 @@ import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Field;
+import java.math.BigInteger;
import java.net.URISyntaxException;
import java.util.Map;
import java.util.Timer;
@@ -60,6 +61,18 @@ import at.asitplus.eidas.specific.connector.test.saml2.Pvp2SProfileEndPointTest;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasSignalServlet;
import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;
+import at.gv.bmi.namespace.zmr_su.base._20040201.ResponseType;
+import at.gv.bmi.namespace.zmr_su.base._20040201.WorkflowInfoServer;
+import at.gv.bmi.namespace.zmr_su.base._20040201_.ServicePort;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.EidasIdentitaetErgebnisType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.NatuerlichePersonErgebnisType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.NatuerlichePersonErgebnisType.PersonenName;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonErgebnisSatzType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonErgebnisType;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonSuchenResponse;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.Personendaten;
+import at.gv.bmi.namespace.zmr_su.zmr._20040201.PersonensuchergebnisType;
+import at.gv.e_government.reference.namespace.persondata.de._20040201.IdentificationType;
import at.gv.egiz.components.spring.api.SpringBootApplicationContextInitializer;
import at.gv.egiz.eaaf.core.api.data.EaafConstants;
import at.gv.egiz.eaaf.core.exceptions.EaafException;
@@ -99,7 +112,7 @@ import szrservices.SignContentResponseType;
@ActiveProfiles(profiles = {"JUNIT", "jUnitTestMode"})
public class FullStartUpAndProcessTest {
- private static final String FINAL_REDIRECT = "http://localhost/finalizeAuthProtocol?pendingid=";
+ private static final String FINAL_REDIRECT = "http://localhost/public/secure/finalizeAuthProtocol?pendingid=";
@Autowired private WebApplicationContext wac;
@Autowired private PvpEndPointCredentialProvider credentialProvider;
@@ -116,6 +129,7 @@ public class FullStartUpAndProcessTest {
public final SoapServiceRule soap = SoapServiceRule.newInstance();
private SZR szrMock;
+ private ServicePort zmrClient;
private String cc;
private String givenName;
@@ -186,7 +200,7 @@ public class FullStartUpAndProcessTest {
}
szrMock = soap.mock(SZR.class, "http://localhost:1234/demoszr");
-
+ zmrClient = soap.mock(ServicePort.class, "http://localhost:1234/demozmr");
cc = RandomStringUtils.randomAlphabetic(2).toUpperCase();
@@ -337,8 +351,9 @@ public class FullStartUpAndProcessTest {
RequestContextHolder.resetRequestAttributes();
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(eidasNodeRespReq, finalizeResp));
- injectSzrResponse();
-
+ injectZmrResponse();
+ injectSzrResponse();
+
//excute eIDAS node response
eidasSignal.restoreEidasAuthProcess(eidasNodeRespReq, finalizeResp);
@@ -405,6 +420,52 @@ public class FullStartUpAndProcessTest {
when(szrMock.signContent(any(), any(), any())).thenReturn(signContentResp);
}
+
+ private void injectZmrResponse() throws Exception {
+ ResponseType resp = new ResponseType();
+
+ WorkflowInfoServer workflow = new WorkflowInfoServer();
+ workflow.setProzessInstanzID(new BigInteger(RandomStringUtils.randomNumeric(10)));
+ resp.setWorkflowInfoServer(workflow);
+
+ PersonSuchenResponse persRespObj = new PersonSuchenResponse();
+ PersonensuchergebnisType searchResult = new PersonensuchergebnisType();
+ PersonErgebnisSatzType personInfoObj = new PersonErgebnisSatzType();
+ resp.setPersonSuchenResponse(persRespObj);
+ persRespObj.setPersonensuchergebnis(searchResult);
+
+ searchResult.setGefundeneSaetzeERnP(0);
+ searchResult.setGefundeneSaetze(1);
+ searchResult.getPersonErgebnisSatz().add(personInfoObj);
+
+ PersonErgebnisType personInfo = new PersonErgebnisType();
+ Personendaten personDataObj = new Personendaten();
+ personInfoObj.setPersonendaten(personDataObj);
+ personDataObj.getPersonErgebnis().add(personInfo);
+
+ EidasIdentitaetErgebnisType eidasPersonalIdentifier = new EidasIdentitaetErgebnisType();
+ personInfo.getEidasIdentitaet().add(eidasPersonalIdentifier);
+ eidasPersonalIdentifier.setDokumentNummer(personalId);
+ eidasPersonalIdentifier.setEidasArt(Constants.eIDAS_ATTRURN_PERSONALIDENTIFIER);
+ eidasPersonalIdentifier.setStaatscode3(cc);
+
+ NatuerlichePersonErgebnisType natInfo = new NatuerlichePersonErgebnisType();
+ IdentificationType bpk = new IdentificationType();
+ PersonenName natName = new PersonenName();
+ natInfo.getIdentification().add(bpk);
+ natInfo.setPersonenName(natName);
+ personInfo.setNatuerlichePerson(natInfo);
+
+ bpk.setType(EaafConstants.URN_PREFIX_CDID + "ZP");
+ bpk.setValue(RandomStringUtils.randomAlphabetic(10));
+ natInfo.setGeburtsdatum(dateOfBirth);
+ natName.setFamilienname(familyName);
+ natName.setVorname(givenName);
+
+ when(zmrClient.service(any(), any())).thenReturn(resp);
+
+ }
+
private String validateEidasNodeRequestAndBuildResponse(String eidasNodeReqToken)
throws SpecificCommunicationException, URISyntaxException {