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

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

improve unit tests

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