source: josm/trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferableTest.java@ 18037

Last change on this file since 18037 was 18037, checked in by Don-vip, 3 years ago

fix #21064 - Add JUnit 5 extension for preferences (patch by taylor.smock)

  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.datatransfer;
3
4import static org.junit.jupiter.api.Assertions.assertEquals;
5import static org.junit.jupiter.api.Assertions.assertFalse;
6import static org.junit.jupiter.api.Assertions.assertThrows;
7import static org.junit.jupiter.api.Assertions.assertTrue;
8
9import java.awt.datatransfer.DataFlavor;
10import java.awt.datatransfer.UnsupportedFlavorException;
11import java.util.Arrays;
12import java.util.Collection;
13import java.util.Collections;
14import java.util.List;
15
16import org.openstreetmap.josm.data.osm.Node;
17import org.openstreetmap.josm.data.osm.NodeData;
18import org.openstreetmap.josm.data.osm.PrimitiveData;
19import org.openstreetmap.josm.gui.datatransfer.data.PrimitiveTransferData;
20import org.openstreetmap.josm.gui.datatransfer.data.TagTransferData;
21import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
22
23import org.junit.jupiter.api.Test;
24
25/**
26 * Unit tests of {@link PrimitiveTransferable} class.
27 */
28// Only needed for OSM primitives
29@BasicPreferences
30class PrimitiveTransferableTest {
31 /**
32 * Test of {@link PrimitiveTransferable#getTransferDataFlavors()} method response order
33 */
34 @Test
35 void testGetTransferDataFlavors() {
36 List<DataFlavor> flavors = Arrays.asList(new PrimitiveTransferable(null).getTransferDataFlavors());
37 int ptd = flavors.indexOf(PrimitiveTransferData.DATA_FLAVOR);
38 int tags = flavors.indexOf(TagTransferData.FLAVOR);
39 int string = flavors.indexOf(DataFlavor.stringFlavor);
40
41 assertTrue(ptd >= 0);
42 assertTrue(tags >= 0);
43 assertTrue(string >= 0);
44
45 assertTrue(ptd < tags);
46 assertTrue(tags < string);
47 }
48
49 /**
50 * Test of {@link PrimitiveTransferable#isDataFlavorSupported} method.
51 */
52 @Test
53 void testIsDataFlavorSupported() {
54 assertTrue(new PrimitiveTransferable(null).isDataFlavorSupported(PrimitiveTransferData.DATA_FLAVOR));
55 assertFalse(new PrimitiveTransferable(null).isDataFlavorSupported(DataFlavor.imageFlavor));
56 }
57
58 /**
59 * Test of {@link PrimitiveTransferable#getTransferData} method - nominal case.
60 * @throws UnsupportedFlavorException never
61 */
62 @Test
63 void testGetTransferDataNominal() throws UnsupportedFlavorException {
64 PrimitiveTransferData data = PrimitiveTransferData.getData(Collections.singleton(new Node(1)));
65 PrimitiveTransferable pt = new PrimitiveTransferable(data);
66 assertEquals("node 1", pt.getTransferData(DataFlavor.stringFlavor));
67 Collection<PrimitiveData> td = ((PrimitiveTransferData) pt.getTransferData(PrimitiveTransferData.DATA_FLAVOR)).getAll();
68 assertEquals(1, td.size());
69 assertTrue(td.iterator().next() instanceof NodeData);
70
71
72 data = PrimitiveTransferData.getData(Arrays.asList(new Node(1), new Node(2)));
73 pt = new PrimitiveTransferable(data);
74 assertEquals("node 1\nnode 2", pt.getTransferData(DataFlavor.stringFlavor));
75 }
76
77 /**
78 * Test of {@link PrimitiveTransferable#getTransferData} method - error case.
79 */
80 @Test
81 void testGetTransferDataError() {
82 PrimitiveTransferData data = PrimitiveTransferData.getData(Collections.singleton(new Node(1)));
83 assertThrows(UnsupportedFlavorException.class, () -> new PrimitiveTransferable(data).getTransferData(DataFlavor.imageFlavor));
84 }
85}
Note: See TracBrowser for help on using the repository browser.