diff options
| author | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2020-12-11 22:15:27 +0100 | 
|---|---|---|
| committer | Thomas Lenz <thomas.lenz@egiz.gv.at> | 2020-12-11 22:15:27 +0100 | 
| commit | 583c57b9eb692c7db34b618116294796e527eafe (patch) | |
| tree | cf79e8a5154d885d17bf066d53c8d5526ef6d9e7 /eidas_modules/authmodule-eIDAS-v2/src/test | |
| parent | 89cf59a91757d9aa919759d709a04a2257e602fb (diff) | |
| download | National_eIDAS_Gateway-583c57b9eb692c7db34b618116294796e527eafe.tar.gz National_eIDAS_Gateway-583c57b9eb692c7db34b618116294796e527eafe.tar.bz2 National_eIDAS_Gateway-583c57b9eb692c7db34b618116294796e527eafe.zip | |
add more jUnit tests for stabilisation
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src/test')
| -rw-r--r-- | eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java | 52 | 
1 files changed, 37 insertions, 15 deletions
| diff --git a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java index 34f641a7..44fa01e8 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/test/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/test/tasks/CreateIdentityLinkTaskEidNewTest.java @@ -50,13 +50,15 @@ import com.skjolberg.mockito.soap.SoapServiceRule;  import at.asitplus.eidas.specific.connector.MsEidasNodeConstants;  import at.asitplus.eidas.specific.modules.auth.eidas.v2.Constants;  import at.asitplus.eidas.specific.modules.auth.eidas.v2.exception.SzrCommunicationException; -import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.AuthBlockSigningService;  import at.asitplus.eidas.specific.modules.auth.eidas.v2.service.EidasAttributeRegistry;  import at.asitplus.eidas.specific.modules.auth.eidas.v2.tasks.CreateIdentityLinkTask;  import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.JoseUtils;  import at.asitplus.eidas.specific.modules.auth.eidas.v2.utils.JoseUtils.JwsResult; +import at.gv.egiz.eaaf.core.api.IRequest; +import at.gv.egiz.eaaf.core.api.IRequestStorage;  import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants;  import at.gv.egiz.eaaf.core.api.data.EaafConstants; +import at.gv.egiz.eaaf.core.api.data.PvpAttributeDefinitions;  import at.gv.egiz.eaaf.core.api.idp.IConfiguration;  import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext;  import at.gv.egiz.eaaf.core.exceptions.EaafException; @@ -70,6 +72,7 @@ import at.gv.egiz.eaaf.core.impl.idp.auth.data.AuthProcessDataWrapper;  import at.gv.egiz.eaaf.core.impl.idp.module.test.DummySpConfiguration;  import at.gv.egiz.eaaf.core.impl.idp.module.test.TestRequestImpl;  import at.gv.egiz.eaaf.core.impl.idp.process.ExecutionContextImpl; +import at.gv.egiz.eaaf.core.impl.utils.Random;  import eu.eidas.auth.commons.attribute.AttributeDefinition;  import eu.eidas.auth.commons.attribute.ImmutableAttributeMap;  import eu.eidas.auth.commons.attribute.PersonType; @@ -101,7 +104,7 @@ public class CreateIdentityLinkTaskEidNewTest {    EaafKeyStoreFactory keyStoreFactory;    @Autowired -  private AuthBlockSigningService authBlockSigner; +  private IRequestStorage requestStorage;    final ExecutionContext executionContext = new ExecutionContextImpl();    private MockHttpServletRequest httpReq; @@ -188,15 +191,29 @@ public class CreateIdentityLinkTaskEidNewTest {      //perform test      task.execute(pendingReq, executionContext); -    //validate state -    final AuthProcessDataWrapper authProcessData = pendingReq.getSessionData(AuthProcessDataWrapper.class); +    //validate state     +    // check if pendingRequest was stored +    IRequest storedPendingReq = requestStorage.getPendingRequest(pendingReq.getPendingRequestId()); +    Assert.assertNotNull("pendingReq not stored", storedPendingReq); +     +    //check data in session +    final AuthProcessDataWrapper authProcessData = storedPendingReq.getSessionData(AuthProcessDataWrapper.class);      Assert.assertNotNull("AuthProcessData", authProcessData);      Assert.assertNotNull("eidasBind", authProcessData.getGenericDataFromSession(Constants.EIDAS_BIND, String.class));      String authBlock = authProcessData.getGenericDataFromSession(Constants.SZR_AUTHBLOCK, String.class);      Assert.assertNotNull("AuthBlock", authBlock); - -    //check authblock signature +     +    Assert.assertTrue("EID process", authProcessData.isEidProcess()); +    Assert.assertTrue("foreigner process", authProcessData.isForeigner()); +    Assert.assertEquals("EID-ISSUING_NATION", "LU",  +        authProcessData.getGenericDataFromSession(PvpAttributeDefinitions.EID_ISSUING_NATION_NAME, String.class)); +    Assert.assertNotNull("LoA is null", authProcessData.getQaaLevel()); +    Assert.assertEquals("LoA", response.getLevelOfAssurance(),  +        authProcessData.getQaaLevel()); +         +     +    // check authblock signature      final AlgorithmConstraints constraints = new AlgorithmConstraints(ConstraintType.PERMIT,          BINDING_AUTH_ALGORITHM_WHITELIST_SIGNING.toArray(new String[BINDING_AUTH_ALGORITHM_WHITELIST_SIGNING.size()]));      Pair<KeyStore, Provider> keyStore = getKeyStore(); @@ -208,15 +225,15 @@ public class CreateIdentityLinkTaskEidNewTest {      Assert.assertNotNull("deserialized AuthBlock", authBlockJson);      Assert.assertNotNull("no piiTransactionId in pendingRequesdt",  -        pendingReq.getUniquePiiTransactionIdentifier()); -    Assert.assertEquals("piiTransactionId", pendingReq.getUniquePiiTransactionIdentifier(),  +        storedPendingReq.getUniquePiiTransactionIdentifier()); +    Assert.assertEquals("piiTransactionId", storedPendingReq.getUniquePiiTransactionIdentifier(),           authBlockJson.get("piiTransactionId").asText());      Assert.assertEquals("appId", randomTestSp, authBlockJson.get("appId").asText());          Assert.assertFalse("'challenge' is null", authBlockJson.get("challenge").asText().isEmpty());      Assert.assertFalse("'timestamp' is null", authBlockJson.get("timestamp").asText().isEmpty()); -    //check vsz request +    // check vsz request      ArgumentCaptor<PersonInfoType> argument4 = ArgumentCaptor.forClass(PersonInfoType.class);      ArgumentCaptor<Boolean> argument5 = ArgumentCaptor.forClass(Boolean.class);              verify(szrMock, times(1)).getStammzahlEncrypted(argument4.capture(), argument5.capture()); @@ -246,10 +263,8 @@ public class CreateIdentityLinkTaskEidNewTest {              response.getAttributes().getDefinitionsByFriendlyName("PersonIdentifier").iterator().next())              .toString().split("/")[2],           person.getTravelDocument().getDocumentNumber()); -     -     -     -    //check bcBind singing request +            +    // check bcBind singing request      ArgumentCaptor<Boolean> argument1 = ArgumentCaptor.forClass(Boolean.class);      ArgumentCaptor<List<JwsHeaderParam>> argument2 = ArgumentCaptor.forClass(List.class);      ArgumentCaptor<List<SignContentEntry>> argument3 = ArgumentCaptor.forClass(List.class); @@ -364,7 +379,14 @@ public class CreateIdentityLinkTaskEidNewTest {          .put(attributeDef3, RandomStringUtils.randomAlphabetic(10)).put(attributeDef4, "2001-01-01").build();      val b = new AuthenticationResponse.Builder(); -    return b.id("aasdf").issuer("asd").subject("asf").statusCode("200").inResponseTo("asdf").subjectNameIdFormat("afaf") -        .attributes(attributeMap).build(); +    return b.id("_".concat(Random.nextHexRandom16())) +        .issuer(RandomStringUtils.randomAlphabetic(10)) +        .subject(RandomStringUtils.randomAlphabetic(10)) +        .statusCode("200") +        .inResponseTo("_".concat(Random.nextHexRandom16())) +        .subjectNameIdFormat("afaf") +        .levelOfAssurance(EaafConstants.EIDAS_LOA_PREFIX + RandomStringUtils.randomAlphabetic(5)) +        .attributes(attributeMap) +        .build();    }  } | 
