package test.at.gv.egovernment.moa.id.auth.builder;
import at.gv.egovernment.moa.id.auth.builder.PersonDataBuilder;
import at.gv.egovernment.moa.id.auth.data.IdentityLink;
import at.gv.egovernment.moa.id.auth.parser.InfoboxReadResponseParser;
import at.gv.egovernment.moa.util.Constants;
import test.at.gv.egovernment.moa.id.UnitTestCase;
/**
* @author Paul Ivancsics
* @version $Id$
*/
public class PersonDataBuilderTest extends UnitTestCase implements Constants {
/**
* Constructor for PersonDataBuilderTest.
*/
public PersonDataBuilderTest(String arg) {
super(arg);
}
public void testBuild() throws Exception {
String xmlInfoboxReadResponse = readFile("data/test/xmldata/testperson1/InfoboxReadResponse.xml");
IdentityLink il = new InfoboxReadResponseParser(xmlInfoboxReadResponse).parseIdentityLink();
String xmlPersonData = new PersonDataBuilder().build(il, true);
String xmlPersonDataShould = "123456789012http://reference.e-government.gv.at/names/persondata/20020228#zmr-zahlHermannMuster1968-10-22";
assertPersonDataEquals(xmlPersonDataShould, xmlPersonData);
}
public void testBuildNoZMRZahl() throws Exception {
String xmlInfoboxReadResponse = readFile("data/test/xmldata/testperson1/InfoboxReadResponse.xml");
IdentityLink il = new InfoboxReadResponseParser(xmlInfoboxReadResponse).parseIdentityLink();
String xmlPersonData = new PersonDataBuilder().build(il, false);
String xmlPersonDataShould = XML_DECL + "HermannMuster1968-10-22";
assertPersonDataEquals(xmlPersonDataShould, xmlPersonData);
}
private void assertPersonDataEquals(String s1, String s2) throws Exception {
String ss1 = insertPrNS(s1);
String ss2 = insertPrNS(s2);
assertXmlEquals(ss1, ss2);
}
private String insertPrNS(String xmlPersonData) {
int startNS = xmlPersonData.indexOf("Person") + "Person".length() + 1;
String s =
xmlPersonData.substring(0, startNS) +
"xmlns:pr=\"" + PD_NS_URI + "\" " +
"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
xmlPersonData.substring(startNS);
return s;
}
}