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 com.ausregistry.jtoolkit2.Timer;
import com.ausregistry.jtoolkit2.se.CLTRID;
import com.ausregistry.jtoolkit2.se.Command;
import com.ausregistry.jtoolkit2.se.DomainCreateCommand;
public class SecDnsDomainCreateCommandExtensionAddTest {
@Before
public void setUp() throws Exception {
Timer.setTime("20070101.010101");
CLTRID.setClID("JTKUTEST");
}
@Test
public void testSecDNSAllFields() throws Exception {
final Command cmd = new DomainCreateCommand("jtkutest.com.au", "jtkUT3st");
final SecDnsDomainCreateCommandExtension ext = new SecDnsDomainCreateCommandExtension();
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 createData = new DSOrKeyType();
createData.addToDsData(dsData);
createData.setMaxSigLife(maxSigLife);
ext.setCreateData(createData);
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><create><create 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><authInfo><pw>jtkUT3st</pw></authInfo></create></create><extension><create xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><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></create></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSMultipleDSData() throws Exception {
final Command cmd = new DomainCreateCommand("jtkutest.com.au", "jtkUT3st");
final SecDnsDomainCreateCommandExtension ext = new SecDnsDomainCreateCommandExtension();
DSData dsData = new DSData(12345, 3, 1, "38FD46E6C4B45C55D4AC");
KeyData kd = new KeyData(256, 3, 1, "AQPJ////4Q==");
dsData.setKeyData(kd);
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(604800);
DSOrKeyType createData = new DSOrKeyType();
createData.setMaxSigLife(maxSigLife);
createData.addToDsData(dsData);
dsData = new DSData(6789, 2, 2, "49FD46E6C4B45C55D4AC");
createData.addToDsData(dsData);
ext.setCreateData(createData);
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><create><create 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><authInfo><pw>jtkUT3st</pw></authInfo></create></create><extension><create xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><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></create></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSAllFieldsMin() throws Exception {
final Command cmd = new DomainCreateCommand("jtkutest.com.au", "jtkUT3st");
final SecDnsDomainCreateCommandExtension ext = new SecDnsDomainCreateCommandExtension();
final DSData dsData = new DSData(0, 0, 0, "49FD46E6C4B45C55D4AC");
final KeyData kd = new KeyData(0, 0, 0, "AQPJ////4Q==");
dsData.setKeyData(kd);
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(1);
DSOrKeyType createData = new DSOrKeyType();
createData.addToDsData(dsData);
createData.setMaxSigLife(maxSigLife);
ext.setCreateData(createData);
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><create><create 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><authInfo><pw>jtkUT3st</pw></authInfo></create></create><extension><create xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><maxSigLife>1</maxSigLife><dsData><keyTag>0</keyTag><alg>0</alg><digestType>0</digestType><digest>49FD46E6C4B45C55D4AC</digest><keyData><flags>0</flags><protocol>0</protocol><alg>0</alg><pubKey>AQPJ////4Q==</pubKey></keyData></dsData></create></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSAllFieldsMax() throws Exception {
final Command cmd = new DomainCreateCommand("jtkutest.com.au", "jtkUT3st");
final SecDnsDomainCreateCommandExtension ext = new SecDnsDomainCreateCommandExtension();
final DSData dsData = new DSData(65535, 255, 255, "49FD46E6C4B45C55D4AC");
final KeyData kd = new KeyData(65535, 255, 255, "AQPJ////4Q==");
dsData.setKeyData(kd);
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(2147483647);
DSOrKeyType createData = new DSOrKeyType();
createData.addToDsData(dsData);
createData.setMaxSigLife(maxSigLife);
ext.setCreateData(createData);
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><create><create 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><authInfo><pw>jtkUT3st</pw></authInfo></create></create><extension><create xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><maxSigLife>2147483647</maxSigLife><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></create></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSJustKeyData() throws Exception {
final Command cmd = new DomainCreateCommand("jtkutest.com.au", "jtkUT3st");
final SecDnsDomainCreateCommandExtension ext = new SecDnsDomainCreateCommandExtension();
final KeyData kd = new KeyData(65535, 255, 255, "AQPJ////4Q==");
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(65535);
DSOrKeyType createData = new DSOrKeyType();
createData.addToKeyData(kd);
createData.setMaxSigLife(maxSigLife);
ext.setCreateData(createData);
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><create><create 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><authInfo><pw>jtkUT3st</pw></authInfo></create></create><extension><create xmlns=\"urn:ietf:params:xml:ns:secDNS-1.1\"><maxSigLife>65535</maxSigLife><keyData><flags>65535</flags><protocol>255</protocol><alg>255</alg><pubKey>AQPJ////4Q==</pubKey></keyData></create></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
cmd.toXML());
}
@Test
public void testSecDNSDsDataAndKeyData() throws Exception {
final Command cmd = new DomainCreateCommand("jtkutest.com.au", "jtkUT3st");
final SecDnsDomainCreateCommandExtension ext = new SecDnsDomainCreateCommandExtension();
final KeyData kd = new KeyData(65535, 255, 255, "AQPJ////4Q==");
final DSData dsData = new DSData(65535, 255, 255, "49FD46E6C4B45C55D4AC");
dsData.setKeyData(kd);
MaxSigLifeType maxSigLife = new MaxSigLifeType();
maxSigLife.setMaxSigLife(65535);
DSOrKeyType createData = new DSOrKeyType();
createData.addToKeyData(kd);
createData.addToDsData(dsData);
createData.setMaxSigLife(maxSigLife);
ext.setCreateData(createData);
cmd.appendExtension(ext);
try {
cmd.toXML();
Assert.assertTrue("Should trigger a SAXParserException", false);
} catch (Exception spe) {
Assert.assertTrue("Should trigger a SAXParserException with message about keyData", spe.getMessage().contains("element 'keyData'"));
}
}
}