package com.ausregistry.jtoolkit2.se.secdns;
import static org.junit.Assert.assertEquals;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.SAXParseException;
import com.ausregistry.jtoolkit2.Timer;
import com.ausregistry.jtoolkit2.se.CLTRID;
import com.ausregistry.jtoolkit2.se.Command;
import com.ausregistry.jtoolkit2.se.DomainUpdateCommand;
public class SecDnsDomainUpdateCommandExtensionAddTest {
@Before
public void setUp() throws Exception {
Timer.setTime("20070101.010101");
CLTRID.setClID("JTKUTEST");
}
@Test
public void testSecDNSAllFieldsUrgent() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
final DSData dsData = new DSData(12345, 3, 1, "49FD46E6C4B45C55D4AC");
final KeyData kd = new KeyData(256, 3, 1, "AQPJ////4Q==");
dsData.setKeyData(kd);
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(604800);
DSOrKeyType addData = new DSOrKeyType();
addData.addToDsData(dsData);
addData.setMaxSigLife(maxSigLife);
ext.setAddData(addData);
cmd.appendExtension(ext);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"><command><update><update xmlns=\"urn:ietf:params:xml:ns:domain-1.0\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\"><name>jtkutest.com.au</name><chg><registrant>JTKCON</registrant><authInfo><pw>jtkUT3st</pw></authInfo></chg></update></update><extension><update xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\" urgent=\"true\"><add><maxSigLife>604800</maxSigLife><dsData><keyTag>12345</keyTag><alg>3</alg><digestType>1</digestType><digest>49FD46E6C4B45C55D4AC</digest><keyData><flags>256</flags><protocol>3</protocol><alg>1</alg><pubKey>AQPJ////4Q==</pubKey></keyData></dsData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSMandatoryFieldsUrgent() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
final DSData dsData = new DSData(12345, 3, 1, "49FD46E6C4B45C55D4AC");
DSOrKeyType addData = new DSOrKeyType();
addData.addToDsData(dsData);
ext.setAddData(addData);
cmd.appendExtension(ext);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"><command><update><update xmlns=\"urn:ietf:params:xml:ns:domain-1.0\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\"><name>jtkutest.com.au</name><chg><registrant>JTKCON</registrant><authInfo><pw>jtkUT3st</pw></authInfo></chg></update></update><extension><update xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\" urgent=\"true\"><add><dsData><keyTag>12345</keyTag><alg>3</alg><digestType>1</digestType><digest>49FD46E6C4B45C55D4AC</digest></dsData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSMandatoryFieldsNotUrgent() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(false); // explicitly setting it to false for the sake of
// testing
final DSData dsData = new DSData(12345, 3, 1, "49FD46E6C4B45C55D4AC");
DSOrKeyType addData = new DSOrKeyType();
addData.addToDsData(dsData);
ext.setAddData(addData);
cmd.appendExtension(ext);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"><command><update><update xmlns=\"urn:ietf:params:xml:ns:domain-1.0\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\"><name>jtkutest.com.au</name><chg><registrant>JTKCON</registrant><authInfo><pw>jtkUT3st</pw></authInfo></chg></update></update><extension><update xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><add><dsData><keyTag>12345</keyTag><alg>3</alg><digestType>1</digestType><digest>49FD46E6C4B45C55D4AC</digest></dsData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSMaxSigLife() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
final DSData dsData = new DSData(12345, 3, 1, "49FD46E6C4B45C55D4AC");
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(604800);
DSOrKeyType addData = new DSOrKeyType();
addData.addToDsData(dsData);
addData.setMaxSigLife(maxSigLife);
ext.setAddData(addData);
cmd.appendExtension(ext);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"><command><update><update xmlns=\"urn:ietf:params:xml:ns:domain-1.0\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\"><name>jtkutest.com.au</name><chg><registrant>JTKCON</registrant><authInfo><pw>jtkUT3st</pw></authInfo></chg></update></update><extension><update xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\" urgent=\"true\"><add><maxSigLife>604800</maxSigLife><dsData><keyTag>12345</keyTag><alg>3</alg><digestType>1</digestType><digest>49FD46E6C4B45C55D4AC</digest></dsData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSMultipleDSData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
DSData dsData = new DSData(12345, 3, 1, "38FD46E6C4B45C55D4AC");
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(604800);
DSOrKeyType addData = new DSOrKeyType();
addData.setMaxSigLife(maxSigLife);
KeyData kd = new KeyData(256, 3, 1, "AQPJ////4Q==");
dsData.setKeyData(kd);
addData.addToDsData(dsData);
dsData = new DSData(6789, 2, 2, "49FD46E6C4B45C55D4AC");
addData.addToDsData(dsData);
ext.setAddData(addData);
cmd.appendExtension(ext);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"><command><update><update xmlns=\"urn:ietf:params:xml:ns:domain-1.0\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\"><name>jtkutest.com.au</name><chg><registrant>JTKCON</registrant><authInfo><pw>jtkUT3st</pw></authInfo></chg></update></update><extension><update xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><add><maxSigLife>604800</maxSigLife><dsData><keyTag>12345</keyTag><alg>3</alg><digestType>1</digestType><digest>38FD46E6C4B45C55D4AC</digest><keyData><flags>256</flags><protocol>3</protocol><alg>1</alg><pubKey>AQPJ////4Q==</pubKey></keyData></dsData><dsData><keyTag>6789</keyTag><alg>2</alg><digestType>2</digestType><digest>49FD46E6C4B45C55D4AC</digest></dsData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSKeyData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
KeyData kd = new KeyData(256, 3, 1, "AQPJ////4Q==");
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(604800);
DSOrKeyType addData = new DSOrKeyType();
addData.addToKeyData(kd);
addData.setMaxSigLife(maxSigLife);
ext.setAddData(addData);
cmd.appendExtension(ext);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"><command><update><update xmlns=\"urn:ietf:params:xml:ns:domain-1.0\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\"><name>jtkutest.com.au</name><chg><registrant>JTKCON</registrant><authInfo><pw>jtkUT3st</pw></authInfo></chg></update></update><extension><update xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><add><maxSigLife>604800</maxSigLife><keyData><flags>256</flags><protocol>3</protocol><alg>1</alg><pubKey>AQPJ////4Q==</pubKey></keyData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSKeyDataNotAllowedWithDSData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(false); // explicitly setting it to false for the sake of testing
final KeyData kd = new KeyData(0, 3, 5, "AQPJ////4Q==");
DSData dsData = new DSData(12345, 3, 1, "38FD46E6C4B45C55D4AC");
dsData.setKeyData(kd);
DSOrKeyType addData = new DSOrKeyType();
addData.addToKeyData(kd);
addData.addToDsData(dsData);
ext.setAddData(addData);
cmd.appendExtension(ext);
try {
cmd.toXML();
Assert.assertTrue("Should trigger a SAXParserException", false);
} catch (SAXParseException spe) {
Assert.assertTrue("Should trigger a SAXParserException with message about keyData", spe.getMessage().contains("element 'keyData'"));
}
}
@Test
public void testSecDNSKeyDataAllowedInDSData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st", null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(false); // explicitly setting it to false for the sake of testing
final KeyData kd = new KeyData(0, 3, 5, "AQPJ////4Q==");
DSData dsData = new DSData(12345, 3, 1, "38FD46E6C4B45C55D4AC");
dsData.setKeyData(kd);
DSOrKeyType addData = new DSOrKeyType();
addData.addToDsData(dsData);
ext.setAddData(addData);
cmd.appendExtension(ext);
assertEquals(
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"><command><update><update xmlns=\"urn:ietf:params:xml:ns:domain-1.0\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\"><name>jtkutest.com.au</name><chg><registrant>JTKCON</registrant><authInfo><pw>jtkUT3st</pw></authInfo></chg></update></update><extension><update xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><add><dsData><keyTag>12345</keyTag><alg>3</alg><digestType>1</digestType><digest>38FD46E6C4B45C55D4AC</digest><keyData><flags>0</flags><protocol>3</protocol><alg>5</alg><pubKey>AQPJ////4Q==</pubKey></keyData></dsData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
}