source: josm/trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/handler/AddNodeHandlerTest.java@ 17360

Last change on this file since 17360 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.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io.remotecontrol.handler;
3
4import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
5import static org.junit.jupiter.api.Assertions.assertEquals;
6import static org.junit.jupiter.api.Assertions.assertThrows;
7
8import org.junit.jupiter.api.extension.RegisterExtension;
9import org.junit.jupiter.api.Test;
10import org.openstreetmap.josm.data.osm.DataSet;
11import org.openstreetmap.josm.gui.MainApplication;
12import org.openstreetmap.josm.gui.layer.OsmDataLayer;
13import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler.RequestHandlerBadRequestException;
14import org.openstreetmap.josm.testutils.JOSMTestRules;
15
16import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
17
18/**
19 * Unit tests of {@link AddNodeHandler} class.
20 */
21class AddNodeHandlerTest {
22 /**
23 * Setup test.
24 */
25 @RegisterExtension
26 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
27 public JOSMTestRules test = new JOSMTestRules().main().assertionsInEDT().projection();
28
29 private static AddNodeHandler newHandler(String url) throws RequestHandlerBadRequestException {
30 AddNodeHandler req = new AddNodeHandler();
31 if (url != null)
32 req.setUrl(url);
33 return req;
34 }
35
36 /**
37 * Unit test for bad request - no layer.
38 */
39 @Test
40 void testBadRequestNoLayer() {
41 Exception e = assertThrows(RequestHandlerBadRequestException.class, () -> newHandler("https://localhost?lat=0&lon=0").handle());
42 assertEquals("There is no layer opened to add node", e.getMessage());
43 }
44
45 /**
46 * Unit test for bad request - no param.
47 */
48 @Test
49 void testBadRequestNoParam() {
50 OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
51 MainApplication.getLayerManager().addLayer(layer);
52 Exception e = assertThrows(RequestHandlerBadRequestException.class, () -> newHandler(null).handle());
53 assertEquals("NumberFormatException (empty String)", e.getMessage());
54 }
55
56 /**
57 * Unit test for bad request - invalid URL.
58 */
59 @Test
60 void testBadRequestInvalidUrl() {
61 Exception e = assertThrows(RequestHandlerBadRequestException.class, () -> newHandler("invalid_url").handle());
62 assertEquals("The following keys are mandatory, but have not been provided: lat, lon", e.getMessage());
63 }
64
65 /**
66 * Unit test for bad request - incomplete URL.
67 */
68 @Test
69 void testBadRequestIncompleteUrl() {
70 Exception e = assertThrows(RequestHandlerBadRequestException.class, () -> newHandler("https://localhost").handle());
71 assertEquals("The following keys are mandatory, but have not been provided: lat, lon", e.getMessage());
72 }
73
74 /**
75 * Unit test for nominal request - local data file.
76 */
77 @Test
78 void testNominalRequest() {
79 OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
80 MainApplication.getLayerManager().addLayer(layer);
81 assertDoesNotThrow(() -> newHandler("https://localhost?lat=0&lon=0").handle());
82 }
83}
Note: See TracBrowser for help on using the repository browser.