package com.ausregistry.jtoolkit2.se.generic;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Before;
import org.junit.Test;
import org.xml.sax.SAXException;
import com.ausregistry.jtoolkit2.Timer;
import com.ausregistry.jtoolkit2.se.CLTRID;
import com.ausregistry.jtoolkit2.se.Command;
import com.ausregistry.jtoolkit2.se.CommandExtension;
import com.ausregistry.jtoolkit2.se.DomainCreateCommand;
import com.ausregistry.jtoolkit2.se.DomainUpdateCommand;
public class DomainKVCommandExtensionTest {
private static String registrantName = "AusRegistry";
private static String eligibilityType = "Trademark";
private static int policyReason = 1;
@Before
public void setUp() throws Exception {
Timer.setTime("20070101.010101");
CLTRID.setClID("JTKUTEST");
}
@Test
public void testUpdateSingleKVList() {
final DomainKVCommandExtension extension = new DomainKVCommandExtension(
CommandExtension.UPDATE);
addSampleItemsToExtension(extension, "ae");
final Command updateCommand = new DomainUpdateCommand("jtkutest.com.ae");
updateCommand.appendExtension(extension);
try {
final String xml = updateCommand.toXML();
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.ae</name></update></update><extension><update xmlns=\"urn:X-ar:params:xml:ns:kv-1.0\" xsi:schemaLocation=\"urn:X-ar:params:xml:ns:kv-1.0 kv-1.0.xsd\"><kvlist name=\"ae\"><item key=\"eligibilityType\">Trademark</item><item key=\"policyReason\">1</item><item key=\"registrantName\">AusRegistry</item></kvlist></update></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
xml);
} catch (final SAXException saxe) {
fail(saxe.getMessage());
}
}
@Test
public void testCreateSingleKVList() {
final DomainKVCommandExtension extension = new DomainKVCommandExtension(
CommandExtension.CREATE);
addSampleItemsToExtension(extension, "ae");
final Command createCommand = new DomainCreateCommand("jtkutest.com.ae", "jtkUT3st",
"JTKCON", new String[] { "JTKCON2" });
createCommand.appendExtension(extension);
try {
final String xml = createCommand.toXML();
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.ae</name><registrant>JTKCON</registrant><contact type=\"tech\">JTKCON2</contact><authInfo><pw>jtkUT3st</pw></authInfo></create></create><extension><create xmlns=\"urn:X-ar:params:xml:ns:kv-1.0\" xsi:schemaLocation=\"urn:X-ar:params:xml:ns:kv-1.0 kv-1.0.xsd\"><kvlist name=\"ae\"><item key=\"eligibilityType\">Trademark</item><item key=\"policyReason\">1</item><item key=\"registrantName\">AusRegistry</item></kvlist></create></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
xml);
} catch (final SAXException saxe) {
fail(saxe.getMessage());
}
}
@Test
public void testMultipleKVList() {
final DomainKVCommandExtension extension = new DomainKVCommandExtension(
CommandExtension.CREATE);
addSampleItemsToExtension(extension, "au");
addSampleItemsToExtension(extension, "ae");
final Command createCommand = new DomainCreateCommand("jtkutest.com.ae", "jtkUT3st",
"JTKCON", new String[] { "JTKCON2" });
createCommand.appendExtension(extension);
try {
final String xml = createCommand.toXML();
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.ae</name><registrant>JTKCON</registrant><contact type=\"tech\">JTKCON2</contact><authInfo><pw>jtkUT3st</pw></authInfo></create></create><extension><create xmlns=\"urn:X-ar:params:xml:ns:kv-1.0\" xsi:schemaLocation=\"urn:X-ar:params:xml:ns:kv-1.0 kv-1.0.xsd\"><kvlist name=\"ae\"><item key=\"eligibilityType\">Trademark</item><item key=\"policyReason\">1</item><item key=\"registrantName\">AusRegistry</item></kvlist><kvlist name=\"au\"><item key=\"eligibilityType\">Trademark</item><item key=\"policyReason\">1</item><item key=\"registrantName\">AusRegistry</item></kvlist></create></extension><clTRID>JTKUTEST.20070101.010101.0</clTRID></command></epp>",
xml);
} catch (final SAXException saxe) {
fail(saxe.getMessage());
}
}
private void addSampleItemsToExtension(final DomainKVCommandExtension extension, String listName) {
extension.addItem(listName, "eligibilityType", eligibilityType);
extension.addItem(listName, "policyReason", String.valueOf(policyReason));
extension.addItem(listName, "registrantName", registrantName);
}
}