source: josm/trunk/test/unit/org/openstreetmap/josm/data/validation/tests/PublicTransportRouteTestTest.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

File size: 3.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.validation.tests;
3
4import static org.junit.jupiter.api.Assertions.assertEquals;
5
6import java.util.Arrays;
7import java.util.List;
8
9import org.junit.jupiter.api.extension.RegisterExtension;
10import org.junit.jupiter.api.Test;
11import org.openstreetmap.josm.TestUtils;
12import org.openstreetmap.josm.data.osm.Node;
13import org.openstreetmap.josm.data.osm.Relation;
14import org.openstreetmap.josm.data.osm.RelationMember;
15import org.openstreetmap.josm.data.osm.Way;
16import org.openstreetmap.josm.testutils.JOSMTestRules;
17
18import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
19
20/**
21 * JUnit Test of "Public Transport Route" validation test.
22 */
23class PublicTransportRouteTestTest {
24
25 final PublicTransportRouteTest test = new PublicTransportRouteTest();
26
27 /**
28 * Setup test.
29 */
30 @RegisterExtension
31 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
32 public JOSMTestRules rules = new JOSMTestRules();
33
34 /**
35 * Performs various tests.
36 */
37 @Test
38 void testVarious() {
39 final List<Node> nodes = Arrays.asList(new Node(), new Node(), new Node(), new Node(), new Node(), new Node());
40 final Way w1 = TestUtils.newWay("", nodes.get(0), nodes.get(1));
41 final Way w2 = TestUtils.newWay("", nodes.get(1), nodes.get(2));
42 final Way w3 = TestUtils.newWay("", nodes.get(3), nodes.get(2));
43 final Way w4 = TestUtils.newWay("", nodes.get(3), nodes.get(4));
44
45 test.startTest(null);
46 test.visit(TestUtils.newRelation("type=route route=tram public_transport:version=2"));
47 test.visit(TestUtils.newRelation("type=unknown"));
48 assertEquals(0, test.getErrors().size());
49
50 final Relation r2 = TestUtils.newRelation("type=route route=tram public_transport:version=2",
51 new RelationMember("", w1), new RelationMember("", w2), new RelationMember("", w3), new RelationMember("", w4));
52 test.startTest(null);
53 test.visit(r2);
54 assertEquals(0, test.getErrors().size());
55
56 final Relation r3 = TestUtils.newRelation("type=route route=tram public_transport:version=2",
57 new RelationMember("forward", w1));
58 test.startTest(null);
59 test.visit(r3);
60 assertEquals(1, test.getErrors().size());
61 assertEquals("Route relation contains a 'forward/backward/alternate' role", test.getErrors().get(0).getMessage());
62
63 final Relation r4 = TestUtils.newRelation("type=route route=tram public_transport:version=2",
64 new RelationMember("", w1), new RelationMember("", w3), new RelationMember("", w2));
65 test.startTest(null);
66 test.visit(r4);
67 assertEquals(1, test.getErrors().size());
68 assertEquals("Route relation contains a gap", test.getErrors().get(0).getMessage());
69
70 final Relation r5 = TestUtils.newRelation("type=route route=tram public_transport:version=2",
71 new RelationMember("", w1), new RelationMember("", w2), new RelationMember("", w3),
72 new RelationMember("stop", w1.firstNode()), new RelationMember("stop", w4.lastNode()));
73 test.startTest(null);
74 test.visit(r5);
75 assertEquals(1, test.getErrors().size());
76 assertEquals("Stop position not part of route", test.getErrors().get(0).getMessage());
77 assertEquals(w4.lastNode(), test.getErrors().get(0).getPrimitives().iterator().next());
78
79 }
80}
Note: See TracBrowser for help on using the repository browser.