package at.gv.egovernment.moa.id.auth.modules.ehvd.test.attributes; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.Collections; import org.apache.commons.lang3.RandomStringUtils; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder; import at.gv.egiz.eaaf.core.api.idp.IAttributeGenerator; import at.gv.egiz.eaaf.core.api.idp.IAuthData; import at.gv.egiz.eaaf.core.api.idp.IConfiguration; import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException; import at.gv.egiz.eaaf.core.exceptions.EAAFStorageException; import at.gv.egiz.eaaf.core.impl.idp.AuthenticationData; import at.gv.egiz.eaaf.core.impl.idp.builder.SimpleStringAttributeGenerator; import at.gv.egiz.eaaf.core.impl.idp.module.test.DummySPConfiguration; import at.gv.egiz.eaaf.modules.pvp2.impl.builder.PVPAttributeBuilder; import at.gv.egovernment.moa.id.auth.modules.ehvd.ConfigurationProperties; import at.gv.egovernment.moa.id.auth.modules.ehvd.client.wsdl.GdaAddress; import at.gv.egovernment.moa.id.auth.modules.ehvd.client.wsdl.GdaDescriptor; public abstract class AbstractEhvdAttributeBuilderTest { @Autowired protected IConfiguration basicConfig; protected DummySPConfiguration oaParam; protected AuthenticationData authData; protected IAttributeGenerator g = new SimpleStringAttributeGenerator(); protected abstract String expectedAttrName(); protected abstract IAttributeBuilder getAttributeBuilderUnderTest(); protected GdaAddress generateAddress(String zip, String state) { GdaAddress addr = new GdaAddress(); addr.setZip(zip); addr.setState(state); return addr; } @Before public void initialize() { oaParam = new DummySPConfiguration(Collections.emptyMap(), basicConfig); authData = new AuthenticationData(); } @Test public void checkAttributeRegistration() { assertNotNull("Attribute: " + expectedAttrName() + " not registrated", PVPAttributeBuilder.getAttributeBuilder(expectedAttrName())); } @Test public void checkName() { assertEquals("wrong attr. name", expectedAttrName(), getAttributeBuilderUnderTest().getName()); } @Test public void checkEmptyAttribute() { assertNull("wrong empty attr.", getAttributeBuilderUnderTest().buildEmpty(g)); } @Test public void noGdaInfos() throws AttributeBuilderException { IAuthData authData = new AuthenticationData(); assertNull("wrong empty attr.", getAttributeBuilderUnderTest().build(oaParam, authData, g)); } @Test public void wrongGdaInfos() throws AttributeBuilderException, EAAFStorageException { AuthenticationData authData = new AuthenticationData(); authData.setGenericData(ConfigurationProperties.ATTRIBUTE_URN_EHVD_PREFIX, RandomStringUtils.randomAlphabetic(10)); assertNull("wrong empty attr.", getAttributeBuilderUnderTest().build(oaParam, authData, g)); } @Test public void emptyGdaInfos() throws AttributeBuilderException, EAAFStorageException { AuthenticationData authData = new AuthenticationData(); authData.setGenericData(ConfigurationProperties.ATTRIBUTE_URN_EHVD_PREFIX, new GdaDescriptor()); assertNull("wrong empty attr.", getAttributeBuilderUnderTest().build(oaParam, authData, g)); } }