package com.ausregistry.jtoolkit2.se.secdns;
import static org.junit.Assert.assertEquals;
import com.ausregistry.jtoolkit2.Timer;
import com.ausregistry.jtoolkit2.se.CLTRID;
import com.ausregistry.jtoolkit2.se.Command;
import com.ausregistry.jtoolkit2.se.DomainUpdateCommand;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.SAXParseException;
public class SecDnsDomainUpdateCommandExtensionRemoveTest {
@Before
public void setUp() throws Exception {
Timer.setTime("20070101.010101");
CLTRID.setClID("JTKUTEST");
}
@Test
public void testSecDNSRemoveMultipleNotUrgent() 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(65535, 255, 255, "AQPJ////4Q==");
final DSData dsData = new DSData(65535, 255, 255, "49FD46E6C4B45C55D4AC");
dsData.setKeyData(kd);
RemType remData = new RemType();
remData.addToDsData(dsData);
ext.setRemData(remData);
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\"><rem><dsData><keyTag>65535</keyTag><alg>255</alg><digestType>255</digestType><digest>49FD46E6C4B45C55D4AC</digest><keyData><flags>65535</flags><protocol>255</protocol><alg>255</alg><pubKey>AQPJ////4Q==</pubKey></keyData></dsData></rem></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSRemoveMultipleEvents() 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(65535, 255, 255, "AQPJ////4Q==");
final DSData dsData = new DSData(65535, 255, 255, "49FD46E6C4B45C55D4AC");
dsData.setKeyData(kd);
RemType remData = new RemType();
remData.addToDsData(dsData);
ext.setRemData(remData);
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\"><rem><dsData><keyTag>65535</keyTag><alg>255</alg><digestType>255</digestType><digest>49FD46E6C4B45C55D4AC</digest><keyData><flags>65535</flags><protocol>255</protocol><alg>255</alg><pubKey>AQPJ////4Q==</pubKey></keyData></dsData></rem></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSRemoveSingleUrgent() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st",
null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
final KeyData kd = new KeyData(65535, 255, 255, "AQPJ////4Q==");
RemType remData = new RemType();
remData.addToKeyData(kd);
ext.setRemData(remData);
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\"><rem><keyData><flags>65535</flags><protocol>255</protocol><alg>255</alg><pubKey>AQPJ////4Q==</pubKey></keyData></rem></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSRemoveAll() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st",
null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
RemType remData = new RemType();
remData.setRemoveAll(true);
ext.setRemData(remData);
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\"><rem><all>true</all></rem></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSRemoveAllWithKeyData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st",
null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
final KeyData kd = new KeyData(65535, 255, 255, "AQPJ////4Q==");
RemType remData = new RemType();
remData.setRemoveAll(true);
remData.addToKeyData(kd);
ext.setRemData(remData);
cmd.appendExtension(ext);
try {
cmd.toXML();
Assert.assertTrue("Should trigger a SAXParserException", false);
} catch (SAXParseException spe) {
Assert.assertTrue("Should trigger a SAXParserException", spe.getMessage().contains("element 'keyData'"));
}
}
@Test
public void testSecDNSRemoveKeyDataAndDsData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st",
null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
final KeyData kd = new KeyData(65535, 255, 255, "AQPJ////4Q==");
final DSData dsData = new DSData(65535, 255, 255, "49FD46E6C4B45C55D4AC");
dsData.setKeyData(kd);
RemType remData = new RemType();
remData.addToKeyData(kd);
remData.addToDsData(dsData);
ext.setRemData(remData);
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 testSecDNSRemoveAllWithDsData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st",
null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
final KeyData kd = new KeyData(65535, 255, 255, "AQPJ////4Q==");
final DSData dsData = new DSData(65535, 255, 255, "49FD46E6C4B45C55D4AC");
dsData.setKeyData(kd);
RemType remData = new RemType();
remData.addToKeyData(kd);
remData.addToDsData(dsData);
remData.setRemoveAll(true);
ext.setRemData(remData);
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 dsData", spe.getMessage().contains("element 'dsData'"));
}
}
@Test
public void testSecDNSRemoveAllAndAddDsData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st",
null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
RemType remData = new RemType();
remData.setRemoveAll(true);
ext.setRemData(remData);
final DSData dsData = new DSData(65535, 255, 255, "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\"><rem><all>true</all></rem><add><dsData><keyTag>65535</keyTag><alg>255</alg><digestType>255</digestType><digest>49FD46E6C4B45C55D4AC</digest></dsData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSRemoveAllAndAddKeyData() throws Exception {
final Command cmd = new DomainUpdateCommand("jtkutest.com.au", "jtkUT3st",
null, null, "JTKCON");
final SecDnsDomainUpdateCommandExtension ext = new SecDnsDomainUpdateCommandExtension();
ext.setUrgent(true);
RemType remData = new RemType();
remData.setRemoveAll(true);
ext.setRemData(remData);
final KeyData keyData = new KeyData(65535, 255, 255, "AQPJ////4Q==");
DSOrKeyType addData = new DSOrKeyType();
addData.addToKeyData(keyData);
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\"><rem><all>true</all></rem><add><keyData><flags>65535</flags><protocol>255</protocol><alg>255</alg><pubKey>AQPJ////4Q==</pubKey></keyData></add></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
}