Index: trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferableTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferableTest.java	(revision 9563)
+++ trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferableTest.java	(revision 9563)
@@ -0,0 +1,76 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.openstreetmap.josm.gui.datatransfer.PrimitiveTransferable.PRIMITIVE_DATA;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.PrimitiveData;
+
+/**
+ * Unit tests of {@link PrimitiveTransferable} class.
+ */
+public class PrimitiveTransferableTest {
+
+    /**
+     * Setup tests
+     */
+    @BeforeClass
+    public static void setUpBeforeClass() {
+        JOSMFixture.createUnitTestFixture().init();
+    }
+
+    /**
+     * Test of {@link PrimitiveTransferable#getTransferDataFlavors()} method.
+     */
+    @Test
+    public void testGetTransferDataFlavors() {
+        DataFlavor[] flavors = new PrimitiveTransferable(null).getTransferDataFlavors();
+        assertEquals(2, flavors.length);
+        assertEquals(PRIMITIVE_DATA, flavors[0]);
+        assertEquals(DataFlavor.stringFlavor, flavors[1]);
+    }
+
+    /**
+     * Test of {@link PrimitiveTransferable#isDataFlavorSupported} method.
+     */
+    @Test
+    public void testIsDataFlavorSupported() {
+        assertTrue(new PrimitiveTransferable(null).isDataFlavorSupported(PRIMITIVE_DATA));
+        assertFalse(new PrimitiveTransferable(null).isDataFlavorSupported(null));
+    }
+
+    /**
+     * Test of {@link PrimitiveTransferable#getTransferData} method - nominal case.
+     * @throws UnsupportedFlavorException never
+     */
+    @Test
+    @SuppressWarnings("unchecked")
+    public void testGetTransferDataNominal() throws UnsupportedFlavorException {
+        PrimitiveTransferable pt = new PrimitiveTransferable(Collections.singleton(new Node(1)));
+        assertEquals("node 1 # incomplete\n", pt.getTransferData(DataFlavor.stringFlavor));
+        Collection<PrimitiveData> td = (Collection<PrimitiveData>) pt.getTransferData(PRIMITIVE_DATA);
+        assertEquals(1, td.size());
+        assertNotNull(td.iterator().next());
+    }
+
+    /**
+     * Test of {@link PrimitiveTransferable#getTransferData} method - error case.
+     * @throws UnsupportedFlavorException always
+     */
+    @Test(expected = UnsupportedFlavorException.class)
+    public void testGetTransferDataError() throws UnsupportedFlavorException {
+        new PrimitiveTransferable(Collections.singleton(new Node(1))).getTransferData(null);
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java	(revision 9563)
+++ trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java	(revision 9563)
@@ -0,0 +1,77 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.datatransfer;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.openstreetmap.josm.gui.datatransfer.RelationMemberTransferable.RELATION_MEMBER_DATA;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.util.Collection;
+import java.util.Collections;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.PrimitiveData;
+import org.openstreetmap.josm.data.osm.RelationMember;
+
+/**
+ * Unit tests of {@link RelationMemberTransferable} class.
+ */
+public class RelationMemberTransferableTest {
+
+    /**
+     * Setup tests
+     */
+    @BeforeClass
+    public static void setUpBeforeClass() {
+        JOSMFixture.createUnitTestFixture().init();
+    }
+
+    /**
+     * Test of {@link RelationMemberTransferable#getTransferDataFlavors()} method.
+     */
+    @Test
+    public void testGetTransferDataFlavors() {
+        DataFlavor[] flavors = new RelationMemberTransferable(null).getTransferDataFlavors();
+        assertEquals(2, flavors.length);
+        assertEquals(RELATION_MEMBER_DATA, flavors[0]);
+        assertEquals(DataFlavor.stringFlavor, flavors[1]);
+    }
+
+    /**
+     * Test of {@link RelationMemberTransferable#isDataFlavorSupported} method.
+     */
+    @Test
+    public void testIsDataFlavorSupported() {
+        assertTrue(new RelationMemberTransferable(null).isDataFlavorSupported(RELATION_MEMBER_DATA));
+        assertFalse(new RelationMemberTransferable(null).isDataFlavorSupported(null));
+    }
+
+    /**
+     * Test of {@link RelationMemberTransferable#getTransferData} method - nominal case.
+     * @throws UnsupportedFlavorException never
+     */
+    @Test
+    @SuppressWarnings("unchecked")
+    public void testGetTransferDataNominal() throws UnsupportedFlavorException {
+        RelationMemberTransferable rmt = new RelationMemberTransferable(Collections.singleton(new RelationMember("test", new Node(1))));
+        assertEquals("node 1 test # incomplete\n", rmt.getTransferData(DataFlavor.stringFlavor));
+        Collection<PrimitiveData> td = (Collection<PrimitiveData>) rmt.getTransferData(RELATION_MEMBER_DATA);
+        assertEquals(1, td.size());
+        assertNotNull(td.iterator().next());
+    }
+
+    /**
+     * Test of {@link RelationMemberTransferable#getTransferData} method - error case.
+     * @throws UnsupportedFlavorException always
+     */
+    @Test(expected = UnsupportedFlavorException.class)
+    public void testGetTransferDataError() throws UnsupportedFlavorException {
+        new RelationMemberTransferable(Collections.singleton(new RelationMember(null, new Node(1)))).getTransferData(null);
+    }
+}
