source: josm/trunk/test/unit/org/openstreetmap/josm/actions/CreateMultipolygonActionTest.groovy@ 7535

Last change on this file since 7535 was 7081, checked in by Don-vip, 11 years ago

fixes for unit tests

File size: 3.3 KB
RevLine 
[6564]1package org.openstreetmap.josm.actions
2
[7081]3import org.junit.BeforeClass
4import org.junit.Test
5import org.openstreetmap.josm.JOSMFixture
6import org.openstreetmap.josm.TestUtils
[6564]7import org.openstreetmap.josm.actions.search.SearchCompiler
8import org.openstreetmap.josm.data.osm.Relation
9import org.openstreetmap.josm.data.osm.Way
10import org.openstreetmap.josm.io.OsmReader
11import org.openstreetmap.josm.tools.Utils
12
[7081]13class CreateMultipolygonActionTest {
[6564]14
[7081]15 @BeforeClass
16 public static void setUp() {
17 JOSMFixture.createUnitTestFixture().init();
[6564]18 }
19
[6597]20 static def getRefToRoleMap(Relation relation) {
[6564]21 def refToRole = new TreeMap<String, String>()
22 for (i in relation.getMembers()) {
23 refToRole.put(i.member.get("ref"), i.role);
24 }
25 return refToRole;
26 }
27
[7081]28 @Test
29 public void testCreate1() {
[6564]30 def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
[6597]31 def mp = CreateMultipolygonAction.createMultipolygonCommand(ds.getWays(), null)
[6564]32 assert mp.a.getDescriptionText() == "Sequence: Create multipolygon"
33 assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer, 1.1.2:outer, 1.2:inner]"
34 }
35
[7081]36 @Test
37 public void testCreate2() {
[6564]38 def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
39 def ways = Utils.filter(ds.getWays(), SearchCompiler.compile("ref=1 OR ref:1.1.", false, false))
[6597]40 def mp = CreateMultipolygonAction.createMultipolygonCommand(ways as Collection<Way>, null)
[6564]41 assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1.1:inner, 1.1.2:inner]"
42 }
43
[7081]44 @Test
45 public void testUpdate1() {
[6564]46 def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
47 def ways = Utils.filter(ds.getWays(), SearchCompiler.compile("ref=\".*1\$\"", false, true))
[6597]48 def mp = CreateMultipolygonAction.createMultipolygonCommand(ways as Collection<Way>, null)
[6564]49 assert mp.b.getMembersCount() == 3
50 assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer]"
51 def ways2 = Utils.filter(ds.getWays(), SearchCompiler.compile("ref=1.2", false, true))
[6597]52 def mp2 = CreateMultipolygonAction.createMultipolygonCommand(ways2 as Collection<Way>, mp.b)
[6564]53 assert mp2.b.getMembersCount() == 4
54 assert getRefToRoleMap(mp2.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer, 1.2:inner]"
55 }
56
[7081]57 @Test
58 public void testUpdate2() {
[6564]59 def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
60 def ways = Utils.filter(ds.getWays(), SearchCompiler.compile("ref=1 OR ref:1.1.1", false, false))
[6597]61 def mp = CreateMultipolygonAction.createMultipolygonCommand(ways as Collection<Way>, null)
[6564]62 assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1.1:inner]"
63 def ways2 = Utils.filter(ds.getWays(), SearchCompiler.compile("ref=1.1 OR ref=1.2 OR ref=1.1.2", false, true))
[6597]64 def mp2 = CreateMultipolygonAction.createMultipolygonCommand(ways2 as Collection<Way>, mp.b)
[6564]65 assert getRefToRoleMap(mp2.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer, 1.1.2:outer, 1.2:inner]"
66 }
67}
Note: See TracBrowser for help on using the repository browser.