package at.gv.egiz.eaaf.core.impl.idp.auth.attributes;
import java.util.UUID;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import at.gv.egiz.eaaf.core.api.idp.IAttributeBuilder;
import at.gv.egiz.eaaf.core.api.idp.IAuthData;
import at.gv.egiz.eaaf.core.exceptions.AttributeBuilderException;
import at.gv.egiz.eaaf.core.impl.idp.AuthenticationData;
import at.gv.egiz.eaaf.core.impl.idp.builder.attributes.PiiTransactionIdAttributeBuilder;
import at.gv.egiz.eaaf.core.impl.utils.TransactionIdUtils;
/**
* Attribute builder to generate an attribute that holds the unique TransactionId for this process.
*
* The attribute-value is read from {@link TransactionIdUtils} with method getTransactionId()
*
* @author tlenz
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/SpringTest-context_eaaf_core.xml")
public class PiiTransactionIdAttributeBuilderTest extends AbstractAttributeBuilderTest {
private final IAttributeBuilder attrBuilder = new PiiTransactionIdAttributeBuilder();
@Test
public void attributeName() {
Assert.assertEquals("Wrong attribute name",
"urn:eidgvat:attributes.piiTransactionId", attrBuilder.getName());
}
@Test
public void checkEmptyAttribute() {
String value = attrBuilder.buildEmpty(gen);
Assert.assertNull("Attr. not null", value);
}
@Test
public void noPiiTransactionId() throws AttributeBuilderException, Exception {
String value = attrBuilder.build(spConfig, buildAuthData(), gen);
Assert.assertNull("Attr. not null", value);
}
@Test
public void withPiiTransactionId() throws AttributeBuilderException, Exception {
String piiTransId = UUID.randomUUID().toString();
IAuthData authData = buildAuthData();
((AuthenticationData)authData).setGenericData("urn:eidgvat:attributes.piiTransactionId", piiTransId);
String value = attrBuilder.build(spConfig, authData, gen);
Assert.assertEquals("piiTransactionId", piiTransId, value);
}
}