// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.gui.datatransfer; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Collections; import org.junit.Rule; import org.junit.Test; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.actions.CopyAction; import org.openstreetmap.josm.data.coor.LatLon; import org.openstreetmap.josm.data.osm.DataSet; import org.openstreetmap.josm.data.osm.Node; import org.openstreetmap.josm.gui.layer.OsmDataLayer; import org.openstreetmap.josm.testutils.JOSMTestRules; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; /** * Unit tests of {@link OsmTransferHandler} class. */ public class OsmTransferHandlerTest { /** * Prefs to use OSM primitives */ @Rule @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD") public JOSMTestRules test = new JOSMTestRules().preferences().projection().commands(); private final OsmTransferHandler transferHandler = new OsmTransferHandler(); /** * Test of {@link OsmTransferHandler#pasteOn} method */ @Test public void testPasteOn() { DataSet ds1 = new DataSet(); Node n1 = new Node(new LatLon(43, 1)); ds1.addPrimitive(n1); OsmDataLayer source = new OsmDataLayer(ds1, "source", null); CopyAction.copy(source, Collections.singleton(n1)); DataSet ds2 = new DataSet(); OsmDataLayer target = new OsmDataLayer(ds2, "target", null); transferHandler.pasteOn(target, null); assertTrue(n1.getCoor().equalsEpsilon(ds2.getNodes().iterator().next().getCoor())); ds2.clear(); assertTrue(ds2.getNodes().isEmpty()); LatLon pos = new LatLon(55, -5); transferHandler.pasteOn(target, Main.getProjection().latlon2eastNorth(pos)); assertTrue(pos.equalsEpsilon(ds2.getNodes().iterator().next().getCoor())); } /** * Test of {@link OsmTransferHandler#pasteTags} method */ @Test public void testPasteTags() { Node n = new Node(LatLon.ZERO); ClipboardUtils.copyString("test=ok"); transferHandler.pasteTags(Collections.singleton(n)); assertEquals("ok", n.get("test")); } }