package at.asitplus.eidas.specific.connector.test.config; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.BlockJUnit4ClassRunner; import at.asitplus.eidas.specific.connector.config.ServiceProviderConfiguration; import at.asitplus.eidas.specific.connector.test.config.dummy.MsConnectorDummyConfigMap; import at.gv.egiz.eaaf.core.api.data.EaafConstants; import at.gv.egiz.eaaf.core.api.idp.IConfiguration; import at.gv.egiz.eaaf.core.exceptions.EaafException; @RunWith(BlockJUnit4ClassRunner.class) public class ServiceProviderConfigurationTest { @Test public void spConfigLoad() throws EaafException { IConfiguration authConfig = new MsConnectorDummyConfigMap(); Map map = new HashMap<>(); map.put("uniqueID", RandomStringUtils.randomAlphabetic(10)); map.put("policy.allowed.requested.targets", "urn:publicid:gv.at:cdid\\+.*"); ServiceProviderConfiguration spConfig = new ServiceProviderConfiguration(map, authConfig); spConfig.setRequiredLoA(Arrays.asList(EaafConstants.EIDAS_LOA_LOW)); Assert.assertEquals("LoA", 1, spConfig.getRequiredLoA().size()); Assert.assertEquals("LoA", "http://eidas.europa.eu/LoA/low", spConfig.getRequiredLoA().get(0)); spConfig.setLoAMachtingMode("exact"); Assert.assertEquals("wrong machtingMode", "exact", spConfig.getLoAMatchingMode()); String bpkTarget = EaafConstants.URN_PREFIX_CDID + RandomStringUtils.randomAlphabetic(2); spConfig.setBpkTargetIdentifier(bpkTarget); Assert.assertEquals("wrong bPK", bpkTarget, spConfig.getAreaSpecificTargetIdentifier()); try { spConfig.setBpkTargetIdentifier(EaafConstants.URN_PREFIX_WBPK + RandomStringUtils.randomAlphabetic(2)); } catch (EaafException e) { Assert.assertEquals("ErrorId", "auth.37", e.getErrorId()); } } }