// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.io; import static org.junit.Assert.assertEquals; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import org.junit.BeforeClass; import org.junit.Test; import org.openstreetmap.josm.JOSMFixture; import org.openstreetmap.josm.data.osm.Changeset; import org.openstreetmap.josm.data.osm.User; import org.openstreetmap.josm.gui.progress.NullProgressMonitor; /** * Unit tests of {@link OsmApi} class. */ public class OsmApiTest { /** * Setup test. */ @BeforeClass public static void setUp() { JOSMFixture.createUnitTestFixture().init(); } /** * Non-regression test for <a href="https://josm.openstreetmap.de/ticket/12675">Bug #12675</a>. * @throws IllegalDataException if an error occurs */ @Test public void testTicket12675() throws IllegalDataException { OsmApi api = OsmApi.getOsmApi(); Changeset cs = new Changeset(); cs.setUser(User.getAnonymous()); cs.setId(38038262); String xml = api.toXml(cs); assertEquals("<?xml version='1.0' encoding='UTF-8'?>\n"+ "<osm version='0.6' generator='JOSM'>\n"+ " <changeset id='38038262' user='<anonymous>' uid='-1' open='false'>\n"+ " </changeset>\n"+ "</osm>\n", xml.replace("\r", "")); Changeset cs2 = OsmChangesetParser.parse( new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)), NullProgressMonitor.INSTANCE).iterator().next(); assertEquals(User.getAnonymous(), cs2.getUser()); } }