source: josm/trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferableTest.java@ 17531

Last change on this file since 17531 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.7 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;
8import static org.openstreetmap.josm.gui.datatransfer.RelationMemberTransferable.RELATION_MEMBER_DATA;
9
10import java.awt.datatransfer.DataFlavor;
11import java.awt.datatransfer.UnsupportedFlavorException;
12import java.util.Collection;
13import java.util.Collections;
14
15import org.junit.jupiter.api.Test;
16import org.junit.jupiter.api.extension.RegisterExtension;
17import org.openstreetmap.josm.data.osm.Node;
18import org.openstreetmap.josm.data.osm.PrimitiveData;
19import org.openstreetmap.josm.data.osm.RelationMember;
20import org.openstreetmap.josm.data.osm.RelationMemberData;
21import org.openstreetmap.josm.gui.datatransfer.data.PrimitiveTransferData;
22import org.openstreetmap.josm.testutils.JOSMTestRules;
23
24import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
25
26/**
27 * Unit tests of {@link RelationMemberTransferable} class.
28 */
29class RelationMemberTransferableTest {
30
31 /**
32 * Setup tests
33 */
34 @RegisterExtension
35 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
36 public JOSMTestRules test = new JOSMTestRules();
37
38 /**
39 * Test of {@link RelationMemberTransferable#getTransferDataFlavors()} method.
40 */
41 @Test
42 void testGetTransferDataFlavors() {
43 DataFlavor[] flavors = new RelationMemberTransferable(Collections.<RelationMember>emptyList()).getTransferDataFlavors();
44 assertEquals(3, flavors.length);
45 assertEquals(RELATION_MEMBER_DATA, flavors[0]);
46 assertEquals(PrimitiveTransferData.DATA_FLAVOR, flavors[1]);
47 assertEquals(DataFlavor.stringFlavor, flavors[2]);
48 }
49
50 /**
51 * Test of {@link RelationMemberTransferable#isDataFlavorSupported} method.
52 */
53 @Test
54 void testIsDataFlavorSupported() {
55 RelationMemberTransferable transferable = new RelationMemberTransferable(Collections.<RelationMember>emptyList());
56 assertTrue(transferable.isDataFlavorSupported(RELATION_MEMBER_DATA));
57 assertTrue(transferable.isDataFlavorSupported(PrimitiveTransferData.DATA_FLAVOR));
58 assertFalse(transferable.isDataFlavorSupported(null));
59 }
60
61 /**
62 * Test of {@link RelationMemberTransferable#getTransferData} method - nominal case.
63 * @throws UnsupportedFlavorException never
64 */
65 @Test
66 void testGetTransferDataNominal() throws UnsupportedFlavorException {
67 RelationMemberTransferable rmt = new RelationMemberTransferable(Collections.singleton(new RelationMember("test", new Node(1))));
68 assertEquals("node 1 test # incomplete\n", rmt.getTransferData(DataFlavor.stringFlavor));
69 Collection<RelationMemberData> td = ((RelationMemberTransferable.Data) rmt.getTransferData(RELATION_MEMBER_DATA))
70 .getRelationMemberData();
71 assertEquals(1, td.size());
72 assertEquals(1, td.iterator().next().getMemberId());
73 assertEquals("test", td.iterator().next().getRole());
74
75 Collection<PrimitiveData> primitives = ((PrimitiveTransferData) rmt.getTransferData(PrimitiveTransferData.DATA_FLAVOR))
76 .getDirectlyAdded();
77 assertEquals(1, primitives.size());
78 assertEquals(1, primitives.iterator().next().getId());
79 }
80
81 /**
82 * Test of {@link RelationMemberTransferable#getTransferData} method - error case.
83 */
84 @Test
85 void testGetTransferDataError() {
86 assertThrows(UnsupportedFlavorException.class,
87 () -> new RelationMemberTransferable(Collections.singleton(new RelationMember(null, new Node(1)))).getTransferData(null));
88 }
89}
Note: See TracBrowser for help on using the repository browser.