package com.ausregistry.jtoolkit2.se.variant; import static org.junit.Assert.assertEquals; import com.ausregistry.jtoolkit2.se.IdnDomainVariant; import org.junit.Before; import org.junit.Test; import com.ausregistry.jtoolkit2.Timer; import com.ausregistry.jtoolkit2.se.CLTRID; import com.ausregistry.jtoolkit2.se.DomainUpdateCommand; public class DomainUpdateVariantCommandExtensionV1_1Test { private static final String DOMAIN_UPDATE_VARIANT_ADD_XML = "<?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>example.com</name>" + "</update>" + "</update>" + "<extension>" + "<update xmlns=\"urn:ar:params:xml:ns:variant-1.1\">" + "<add>" + "<variant>xn--4xal.example</variant>" + "</add>" + "</update>" + "</extension>" + "<clTRID>JTKUTEST.20070101.010101.0</clTRID>" + "</command>" + "</epp>"; private static final String DOMAIN_UPDATE_VARIANT_REM_XML = "<?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>example.com</name>" + "</update>" + "</update>" + "<extension>" + "<update xmlns=\"urn:ar:params:xml:ns:variant-1.1\">" + "<rem>" + "<variant>xn--4xal.example</variant>" + "</rem>" + "</update>" + "</extension>" + "<clTRID>JTKUTEST.20070101.010101.0</clTRID>" + "</command>" + "</epp>"; private static final String DOMAIN_UPDATE_VARIANT_COMPO_XML = "<?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>example.com</name>" + "</update>" + "</update>" + "<extension>" + "<update xmlns=\"urn:ar:params:xml:ns:variant-1.1\">" + "<rem>" + "<variant>xn--3dfh6.example</variant>" + "<variant>xn--ii96.example</variant>" + "</rem>" + "<add>" + "<variant>xn--4xal.example</variant>" + "<variant>xn--3uyi3.example</variant>" + "<variant>xn--3xxr5.example</variant>" + "</add>" + "</update>" + "</extension>" + "<clTRID>JTKUTEST.20070101.010101.0</clTRID>" + "</command>" + "</epp>"; private DomainUpdateCommand domainUpdateCommand; private DomainUpdateVariantCommandExtensionV1_1 domainUpdateVariantCommandExtension; @Before public void setUp() throws Exception { Timer.setTime("20070101.010101"); CLTRID.setClID("JTKUTEST"); domainUpdateCommand = new DomainUpdateCommand("example.com"); domainUpdateVariantCommandExtension = new DomainUpdateVariantCommandExtensionV1_1(); } @Test public void shouldGenerateXmlWithAddVariantExtension() throws Exception { domainUpdateVariantCommandExtension.addVariant(new IdnDomainVariant("xn--4xal.example")); domainUpdateCommand.appendExtension(domainUpdateVariantCommandExtension); assertEquals(DOMAIN_UPDATE_VARIANT_ADD_XML, domainUpdateCommand.toXML()); } @Test public void shouldGenerateXmlWithRemVariantExtension() throws Exception { domainUpdateVariantCommandExtension.remVariant(new IdnDomainVariant("xn--4xal.example")); domainUpdateCommand.appendExtension(domainUpdateVariantCommandExtension); assertEquals(DOMAIN_UPDATE_VARIANT_REM_XML, domainUpdateCommand.toXML()); } @Test public void shouldGenerateXmlWithMultipleAddAndRemVariantExtension() throws Exception { domainUpdateVariantCommandExtension.addVariant(new IdnDomainVariant("xn--4xal.example"), new IdnDomainVariant("xn--3uyi3.example"), new IdnDomainVariant("xn--3xxr5.example")); domainUpdateVariantCommandExtension.remVariant(new IdnDomainVariant("xn--3dfh6.example"), new IdnDomainVariant("xn--ii96.example")); domainUpdateCommand.appendExtension(domainUpdateVariantCommandExtension); assertEquals(DOMAIN_UPDATE_VARIANT_COMPO_XML, domainUpdateCommand.toXML()); } @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionWhenAddingNullVariantExtension() { domainUpdateVariantCommandExtension.addVariant(new IdnDomainVariant("something.com"), null); } @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionWhenRemovingNullVariantExtension() { domainUpdateVariantCommandExtension.remVariant(new IdnDomainVariant("something.com"), null); } @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionWhenAddingVariantWithNullName() { domainUpdateVariantCommandExtension.addVariant(new IdnDomainVariant(null)); } @Test(expected = IllegalArgumentException.class) public void shouldThrowExceptionWhenRemovingVariantWithNullName() { domainUpdateVariantCommandExtension.remVariant(new IdnDomainVariant(null)); } }