package at.gv.egovernment.moa.id.auth.modules.ehvd.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import at.gv.egiz.eaaf.core.api.data.EAAFConfigConstants; import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration; import at.gv.egiz.eaaf.core.api.idp.process.ExecutionContext; 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.egovernment.moa.id.auth.modules.ehvd.EhvdServiceAuthModule; import at.gv.egovernment.moa.id.auth.modules.ehvd.test.dummy.DummyAuthConfigMap; import at.gv.egovernment.moa.id.commons.MOAIDAuthConstants; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "/test_ehvd_service_auth.beans.xml" }) public class EhvdServiceAuthModuleTest { @Autowired DummyAuthConfigMap config; @Autowired EhvdServiceAuthModule module; private ExecutionContext context; private TestRequestImpl pendingReq; private Map spConfigMap; @Before public void initialize() { context = new ExecutionContextImpl(); spConfigMap = new HashMap<>(); spConfigMap.put(EAAFConfigConstants.SERVICE_UNIQUEIDENTIFIER, RandomStringUtils.randomAlphanumeric(10)); ISPConfiguration spConfig = new DummySPConfiguration(spConfigMap, config); pendingReq = new TestRequestImpl(); pendingReq.setSpConfig(spConfig); // re-set config config.putConfigValue("modules.ehvd.enabled", String.valueOf(true)); context.put(MOAIDAuthConstants.PROCESSCONTEXT_PERFORM_BKUSELECTION, String.valueOf(false)); context.put(MOAIDAuthConstants.PARAM_BKU, RandomStringUtils.randomAlphabetic(5)); } @Test public void checkProcessDefinition() { String[] def = module.getProcessDefinitions(); assertNotNull("no process definition", def); Arrays.asList(def).stream().forEach( el -> EhvdServiceAuthModuleTest.class.getResourceAsStream(el)); } @Test public void bkuSelectionActiv() { context.put(MOAIDAuthConstants.PROCESSCONTEXT_PERFORM_BKUSELECTION, String.valueOf(true)); assertNull("wrong authModule selected", module.selectProcess(context, pendingReq)); } @Test public void deactivated() { config.putConfigValue("modules.ehvd.enabled", String.valueOf(false)); assertNull("wrong authModule selected", module.selectProcess(context, pendingReq)); } @Test public void unknownServiceProvider() { assertNull("wrong authModule selected", module.selectProcess(context, pendingReq)); } @Test public void allowedServiceProviderAndRequested() { spConfigMap.put(EAAFConfigConstants.SERVICE_UNIQUEIDENTIFIER, "yyasdfasfsa2323"); assertEquals("wrong authmethod identifier", "DefaultAuthenticationWithEHVDInteraction", module.selectProcess(context, pendingReq)); } }