package com.ausregistry.jtoolkit2.se.unspec; import com.ausregistry.jtoolkit2.EPPDateFormatter; import com.ausregistry.jtoolkit2.Timer; import com.ausregistry.jtoolkit2.se.CLTRID; import com.ausregistry.jtoolkit2.se.Command; import com.ausregistry.jtoolkit2.se.DomainRenewCommand; import org.junit.Before; import org.junit.Test; import org.xml.sax.SAXException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; public class DomainRenewCommandUnspecExtensionTest { @Before public void setUp() throws Exception { Timer.setTime("20070101.010101"); CLTRID.setClID("JTKUTEST"); } @Test public void shouldGenerateValidXML() { String domainName = "jtkutest.com.au"; int restoreReasonCode = RestoreReasonCode.RegistrantError.getValue(); String restoreComment = "_My_Comment_"; String currentExpiry = "2006-12-25"; final Command cmd = new DomainRenewCommand(domainName, EPPDateFormatter.fromXSDateTime(currentExpiry)); DomainRenewCommandUnspecExtension ext = new DomainRenewCommandUnspecExtension(RestoreReasonCode.RegistrantError, restoreComment, true, true); try { cmd.appendExtension(ext); String xml = cmd.toXML(); String expectedXml = "<?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>" + "<renew>" + "<renew xmlns=\"urn:ietf:params:xml:ns:domain-1.0\"" + " xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\">" + "<name>" + domainName + "</name>" + "<curExpDate>" + currentExpiry + "</curExpDate>" + "</renew>" + "</renew>" + "<extension>" + "<extension xmlns=\"urn:ietf:params:xml:ns:neulevel-1.0\">" + "<unspec>RestoreReasonCode=" + restoreReasonCode + " RestoreComment=" + restoreComment + " TrueData=Y ValidUse=Y</unspec>" + "</extension>" + "</extension>" + "<clTRID>JTKUTEST.20070101.010101.0</clTRID>" + "</command>" + "</epp>"; assertEquals(expectedXml, xml); } catch (SAXException saxe) { fail(saxe.getMessage()); } } @Test public void shouldGenerateForFalseBooleanValuesXML() { String domainName = "jtkutest.com.au"; int restoreReasonCode = RestoreReasonCode.RegistrantError.getValue(); String restoreComment = "_My_Comment_"; String currentExpiry = "2006-12-25"; final Command cmd = new DomainRenewCommand(domainName, EPPDateFormatter.fromXSDateTime(currentExpiry)); DomainRenewCommandUnspecExtension ext = new DomainRenewCommandUnspecExtension(RestoreReasonCode.RegistrantError, restoreComment, false, false); try { cmd.appendExtension(ext); String xml = cmd.toXML(); String expectedXml = "<?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>" + "<renew>" + "<renew xmlns=\"urn:ietf:params:xml:ns:domain-1.0\"" + " xsi:schemaLocation=\"urn:ietf:params:xml:ns:domain-1.0 domain-1.0.xsd\">" + "<name>" + domainName + "</name>" + "<curExpDate>" + currentExpiry + "</curExpDate>" + "</renew>" + "</renew>" + "<extension>" + "<extension xmlns=\"urn:ietf:params:xml:ns:neulevel-1.0\">" + "<unspec>RestoreReasonCode=" + restoreReasonCode + " RestoreComment=" + restoreComment + " TrueData=N ValidUse=N</unspec>" + "</extension>" + "</extension>" + "<clTRID>JTKUTEST.20070101.010101.0</clTRID>" + "</command>" + "</epp>"; assertEquals(expectedXml, xml); } catch (SAXException saxe) { fail(saxe.getMessage()); } } }