package at.asitplus.eidas.specific.modules.auth.eidas.v2.test; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import at.asitplus.eidas.specific.connector.MsEidasNodeConstants; import at.asitplus.eidas.specific.modules.auth.eidas.v2.EidasAuthenticationModulImpl; import at.gv.egiz.eaaf.core.api.data.EaafConfigConstants; 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.impl.idp.auth.modules.ModuleRegistration; import at.gv.egiz.eaaf.core.impl.idp.module.test.DummyConfiguration; 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; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/SpringTest-context_tasks_test.xml") public class EidasAuthenticationModulImplTest { @Autowired ModuleRegistration moduleReg; @Autowired ResourceLoader loader; private final ExecutionContext executionContext = new ExecutionContextImpl(); private DummySpConfiguration oaParam; private TestRequestImpl pendingReq; private EidasAuthenticationModulImpl authProcess = new EidasAuthenticationModulImpl(); /** * jUnit class initializer. * */ public static void classInitializer() { final String current = new java.io.File(".").toURI().toString(); System.setProperty("eidas.ms.configuration", current + "../basicConfig/default_config.properties"); } /** * jUnit test set-up. * */ @Before public void initialize() { Map configMap = new HashMap(); configMap.put(EaafConfigConstants.SERVICE_UNIQUEIDENTIFIER, "http://test.com/test"); IConfiguration basicConfig = new DummyConfiguration(); oaParam = new DummySpConfiguration(configMap, basicConfig); pendingReq = new TestRequestImpl(); pendingReq.setSpConfig(oaParam); } @Test public void checkProcessDefinition() { Assert.assertNotNull("AuthModule is null", authProcess); Assert.assertNotNull("AuthModule process is null", authProcess.getProcessDefinitions()); for (String el : authProcess.getProcessDefinitions()) { Resource res = loader.getResource(el); Assert.assertTrue("AuthProcess description not extist", res.exists()); } } @Test public void countrySelected() throws Exception { executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, RandomStringUtils.randomAlphanumeric(2)); final String result = moduleReg.selectProcess(executionContext, pendingReq); Assert.assertNotNull("Process is null", result); Assert.assertEquals("Process Id not match", "eIDASAuthentication_v2", result); } @Test public void noCountryValid() throws Exception { final String result = moduleReg.selectProcess(executionContext, pendingReq); Assert.assertNull("Select wrong process", result); } @Test public void selectCountryWrongType() throws Exception { executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, 1); final String result = moduleReg.selectProcess(executionContext, pendingReq); Assert.assertNull("Select wrong process", result); } @Test public void selectCountryEmpty() throws Exception { executionContext.put(MsEidasNodeConstants.REQ_PARAM_SELECTED_COUNTRY, ""); final String result = moduleReg.selectProcess(executionContext, pendingReq); Assert.assertNull("Select wrong process", result); } }