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

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

see #16567 - upgrade almost all tests to JUnit 5, except those depending on WiremockRule

See https://github.com/tomakehurst/wiremock/issues/684

  • Property svn:eol-style set to native
File size: 3.6 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.assertTrue;
7import static org.junit.jupiter.api.Assertions.assertThrows;
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.junit.jupiter.api.Test;
17import org.junit.jupiter.api.extension.RegisterExtension;
18import org.openstreetmap.josm.data.osm.Node;
19import org.openstreetmap.josm.data.osm.NodeData;
20import org.openstreetmap.josm.data.osm.PrimitiveData;
21import org.openstreetmap.josm.gui.datatransfer.data.PrimitiveTransferData;
22import org.openstreetmap.josm.gui.datatransfer.data.TagTransferData;
23import org.openstreetmap.josm.testutils.JOSMTestRules;
24
25import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
26
27/**
28 * Unit tests of {@link PrimitiveTransferable} class.
29 */
30class PrimitiveTransferableTest {
31 /**
32 * Prefs to use OSM primitives
33 */
34 @RegisterExtension
35 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
36 public JOSMTestRules test = new JOSMTestRules().preferences();
37
38 /**
39 * Test of {@link PrimitiveTransferable#getTransferDataFlavors()} method response order
40 */
41 @Test
42 void testGetTransferDataFlavors() {
43 List<DataFlavor> flavors = Arrays.asList(new PrimitiveTransferable(null).getTransferDataFlavors());
44 int ptd = flavors.indexOf(PrimitiveTransferData.DATA_FLAVOR);
45 int tags = flavors.indexOf(TagTransferData.FLAVOR);
46 int string = flavors.indexOf(DataFlavor.stringFlavor);
47
48 assertTrue(ptd >= 0);
49 assertTrue(tags >= 0);
50 assertTrue(string >= 0);
51
52 assertTrue(ptd < tags);
53 assertTrue(tags < string);
54 }
55
56 /**
57 * Test of {@link PrimitiveTransferable#isDataFlavorSupported} method.
58 */
59 @Test
60 void testIsDataFlavorSupported() {
61 assertTrue(new PrimitiveTransferable(null).isDataFlavorSupported(PrimitiveTransferData.DATA_FLAVOR));
62 assertFalse(new PrimitiveTransferable(null).isDataFlavorSupported(DataFlavor.imageFlavor));
63 }
64
65 /**
66 * Test of {@link PrimitiveTransferable#getTransferData} method - nominal case.
67 * @throws UnsupportedFlavorException never
68 */
69 @Test
70 void testGetTransferDataNominal() throws UnsupportedFlavorException {
71 PrimitiveTransferData data = PrimitiveTransferData.getData(Collections.singleton(new Node(1)));
72 PrimitiveTransferable pt = new PrimitiveTransferable(data);
73 assertEquals("node 1", pt.getTransferData(DataFlavor.stringFlavor));
74 Collection<PrimitiveData> td = ((PrimitiveTransferData) pt.getTransferData(PrimitiveTransferData.DATA_FLAVOR)).getAll();
75 assertEquals(1, td.size());
76 assertTrue(td.iterator().next() instanceof NodeData);
77
78
79 data = PrimitiveTransferData.getData(Arrays.asList(new Node(1), new Node(2)));
80 pt = new PrimitiveTransferable(data);
81 assertEquals("node 1\nnode 2", pt.getTransferData(DataFlavor.stringFlavor));
82 }
83
84 /**
85 * Test of {@link PrimitiveTransferable#getTransferData} method - error case.
86 */
87 @Test
88 void testGetTransferDataError() {
89 PrimitiveTransferData data = PrimitiveTransferData.getData(Collections.singleton(new Node(1)));
90 assertThrows(UnsupportedFlavorException.class, () -> new PrimitiveTransferable(data).getTransferData(DataFlavor.imageFlavor));
91 }
92}
Note: See TracBrowser for help on using the repository browser.