// Copyright 2017 The Nomulus Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package google.registry.rde; import static com.google.common.truth.Truth.assertThat; import static google.registry.testing.DatastoreHelper.loadRegistrar; import static google.registry.xml.ValidationMode.STRICT; import google.registry.testing.AppEngineRule; import google.registry.testing.ShardableTestCase; import google.registry.xml.XmlTestUtils; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; /** Unit tests for {@link RdeMarshaller}. */ @RunWith(JUnit4.class) public class RdeMarshallerTest extends ShardableTestCase { private static final String DECLARATION = "\n"; @Rule public final AppEngineRule appEngine = AppEngineRule.builder() .withDatastore() .build(); @Test public void testMarshalRegistrar_validData_producesXmlFragment() throws Exception { DepositFragment fragment = new RdeMarshaller(STRICT).marshalRegistrar(loadRegistrar("TheRegistrar")); assertThat(fragment.type()).isEqualTo(RdeResourceType.REGISTRAR); assertThat(fragment.error()).isEmpty(); String expected = "" + "\n" + " TheRegistrar\n" + " The Registrar\n" + " 1\n" + " ok\n" + " \n" + " \n" + " 123 Example Bőulevard\n" + " Williamsburg\n" + " NY\n" + " 11211\n" + " US\n" + " \n" + " \n" + " \n" + " \n" + " 123 Example Boulevard\n" + " Williamsburg\n" + " NY\n" + " 11211\n" + " US\n" + " \n" + " \n" + " +1.2223334444\n" + " new.registrar@example.com\n" + " http://my.fake.url\n" + " \n" + " whois.nic.fakewhois.example\n" + " \n" + " mine eyes have seen the glory\n" + " of the coming of the borg\n" + "\n"; XmlTestUtils.assertXmlEquals(DECLARATION + expected, DECLARATION + fragment.xml(), "registrar.crDate", "registrar.upDate"); } @Test public void testMarshalRegistrar_unicodeCharacters_dontGetMangled() { DepositFragment fragment = new RdeMarshaller(STRICT).marshalRegistrar(loadRegistrar("TheRegistrar")); assertThat(fragment.xml()).contains("123 Example Bőulevard"); } }