Changeset 15183 in josm for trunk/test


Ignore:
Timestamp:
2019-06-18T11:52:25+02:00 (5 years ago)
Author:
GerdP
Message:

fix #17768: Create / Update multipolygon did not work wich touching inner rings

Location:
trunk/test
Files:
2 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/validation/tests/MultipolygonTestTest.java

    r15134 r15183  
    22package org.openstreetmap.josm.data.validation.tests;
    33
     4import static org.junit.Assert.assertEquals;
     5import static org.junit.Assert.assertTrue;
     6
     7import java.io.InputStream;
    48import java.util.stream.Collectors;
    59
    610import org.junit.Rule;
    711import org.junit.Test;
     12import org.openstreetmap.josm.TestUtils;
    813import org.openstreetmap.josm.data.osm.Relation;
     14import org.openstreetmap.josm.io.OsmReader;
    915import org.openstreetmap.josm.testutils.JOSMTestRules;
    1016
     
    1622public class MultipolygonTestTest {
    1723
    18     private static final MultipolygonTest MULTIPOLYGON_TEST = new MultipolygonTest();
    19     private static final RelationChecker RELATION_TEST = new RelationChecker();
    2024
    2125    /**
     
    2428    @Rule
    2529    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
    26     public JOSMTestRules test = new JOSMTestRules().projection().mapStyles().presets().main();
     30    public JOSMTestRules test = new JOSMTestRules().projection().mapStyles().presets().main().preferences();
    2731
    2832    /**
     
    3236    @Test
    3337    public void testMultipolygonFile() throws Exception {
     38        final MultipolygonTest MULTIPOLYGON_TEST = new MultipolygonTest();
     39        final RelationChecker RELATION_TEST = new RelationChecker();
    3440        ValidatorTestUtils.testSampleFile("data_nodist/multipolygon.osm",
    3541                ds -> ds.getRelations().stream().filter(Relation::isMultipolygon).collect(Collectors.toList()),
    3642                name -> name.startsWith("06") || name.startsWith("07") || name.startsWith("08"), MULTIPOLYGON_TEST, RELATION_TEST);
    3743    }
     44
     45    /**
     46     * Non-regression test for ticket #17768.
     47     * @throws Exception if an error occurs
     48     */
     49    @Test
     50    public void testTicket17768TouchingInner() throws Exception {
     51        try (InputStream is = TestUtils.getRegressionDataStream(17768, "touching-inner.osm")) {
     52            MultipolygonTest mpTest = new MultipolygonTest();
     53            mpTest.makeFromWays(OsmReader.parseDataSet(is, null).getWays());
     54            // inner touches inner, is considered OK in OSM
     55            assertTrue(mpTest.getErrors().isEmpty());
     56        }
     57    }
     58
     59    /**
     60     * Non-regression test for ticket #17768.
     61     * @throws Exception if an error occurs
     62     */
     63    @Test
     64    public void testTicket17768TouchingInnerOuter() throws Exception {
     65        try (InputStream is = TestUtils.getRegressionDataStream(17768, "touching-inner-outer.osm")) {
     66            MultipolygonTest mpTest = new MultipolygonTest();
     67            mpTest.makeFromWays(OsmReader.parseDataSet(is, null).getWays());
     68            // inner touches outer, should return error
     69            assertEquals(1, mpTest.getErrors().size());
     70        }
     71    }
    3872}
Note: See TracChangeset for help on using the changeset viewer.