source: josm/trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/LayerTransferableTest.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

File size: 3.4 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.assertSame;
7import static org.junit.jupiter.api.Assertions.assertTrue;
8import static org.junit.jupiter.api.Assertions.assertThrows;
9
10import java.awt.datatransfer.DataFlavor;
11import java.awt.datatransfer.UnsupportedFlavorException;
12import java.util.Arrays;
13
14import org.junit.jupiter.api.BeforeEach;
15import org.junit.jupiter.api.Test;
16import org.openstreetmap.josm.gui.datatransfer.LayerTransferable.Data;
17import org.openstreetmap.josm.gui.layer.Layer;
18import org.openstreetmap.josm.gui.layer.LayerManagerTest;
19import org.openstreetmap.josm.gui.layer.LayerManagerTest.TestLayer;
20import org.openstreetmap.josm.gui.layer.MainLayerManager;
21
22/**
23 * Tests for {@link LayerTransferable}
24 * @author Michael Zangl
25 * @since 10605
26 */
27class LayerTransferableTest {
28 private TestLayer layer1;
29 private TestLayer layer2;
30 private MainLayerManager manager;
31
32 /**
33 * Set up test data
34 */
35 @BeforeEach
36 public void createTestData() {
37 layer1 = new LayerManagerTest.TestLayer();
38 layer2 = new LayerManagerTest.TestLayer();
39 manager = new MainLayerManager();
40 manager.addLayer(layer1);
41 manager.addLayer(layer2);
42 }
43
44 /**
45 * Test {@link LayerTransferable.Data}
46 */
47 @Test
48 void testLayerData() {
49 Data data = new Data(manager, Arrays.<Layer>asList(layer1, layer2));
50
51 // need to be identity
52 assertSame(manager, data.getManager());
53 assertSame(layer1, data.getLayers().get(0));
54 assertSame(layer2, data.getLayers().get(1));
55 }
56
57 /**
58 * Test {@link LayerTransferable#isDataFlavorSupported(java.awt.datatransfer.DataFlavor)}
59 * and {@link LayerTransferable#getTransferDataFlavors()}
60 */
61 @Test
62 void testSupportedDataFlavor() {
63 LayerTransferable transferable = new LayerTransferable(manager, Arrays.<Layer>asList(layer1, layer2));
64
65 assertFalse(transferable.isDataFlavorSupported(DataFlavor.imageFlavor));
66 assertTrue(transferable.isDataFlavorSupported(LayerTransferable.LAYER_DATA));
67
68 DataFlavor[] flavors = transferable.getTransferDataFlavors();
69 assertEquals(1, flavors.length);
70 assertEquals(LayerTransferable.LAYER_DATA, flavors[0]);
71 }
72
73 /**
74 * Test {@link LayerTransferable#getTransferData(DataFlavor)}
75 * @throws Exception if any error occurs
76 */
77 @Test
78 void testTransferData() throws Exception {
79 LayerTransferable transferable = new LayerTransferable(manager, Arrays.<Layer>asList(layer1, layer2));
80
81 Object object = transferable.getTransferData(LayerTransferable.LAYER_DATA);
82 assertTrue(object instanceof Data);
83 Data data = (Data) object;
84 assertSame(manager, data.getManager());
85 assertSame(layer1, data.getLayers().get(0));
86 assertSame(layer2, data.getLayers().get(1));
87 }
88
89 /**
90 * Test {@link LayerTransferable#getTransferData(DataFlavor)} for unsupported {@link DataFlavor}
91 */
92 @Test
93 void testTransferDataUnsupported() {
94 LayerTransferable transferable = new LayerTransferable(manager, Arrays.<Layer>asList(layer1, layer2));
95
96 assertThrows(UnsupportedFlavorException.class, () -> transferable.getTransferData(DataFlavor.imageFlavor));
97 }
98}
Note: See TracBrowser for help on using the repository browser.