Ignore:
Timestamp:
2016-10-08T15:28:54+02:00 (8 years ago)
Author:
Don-vip
Message:

convert unit tests from Groovy to Java

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/actions/CreateMultipolygonActionTest.java

    r11095 r11104  
    1 package org.openstreetmap.josm.actions
     1// License: GPL. For details, see LICENSE file.
     2package org.openstreetmap.josm.actions;
    23
    3 import org.junit.BeforeClass
    4 import org.junit.Test
    5 import org.openstreetmap.josm.JOSMFixture
    6 import org.openstreetmap.josm.TestUtils
    7 import org.openstreetmap.josm.actions.search.SearchAction
    8 import org.openstreetmap.josm.actions.search.SearchCompiler
    9 import org.openstreetmap.josm.data.osm.Relation
    10 import org.openstreetmap.josm.data.osm.Way
    11 import org.openstreetmap.josm.io.OsmReader
    12 import org.openstreetmap.josm.tools.SubclassFilteredCollection
     4import static org.junit.Assert.assertEquals;
    135
     6import java.io.FileInputStream;
     7import java.util.Collection;
     8import java.util.Map;
     9import java.util.TreeMap;
     10
     11import org.junit.Rule;
     12import org.junit.Test;
     13import org.openstreetmap.josm.TestUtils;
     14import org.openstreetmap.josm.actions.search.SearchAction.SearchSetting;
     15import org.openstreetmap.josm.actions.search.SearchCompiler;
     16import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError;
     17import org.openstreetmap.josm.command.SequenceCommand;
     18import org.openstreetmap.josm.data.osm.DataSet;
     19import org.openstreetmap.josm.data.osm.Relation;
     20import org.openstreetmap.josm.data.osm.RelationMember;
     21import org.openstreetmap.josm.data.osm.Way;
     22import org.openstreetmap.josm.io.OsmReader;
     23import org.openstreetmap.josm.testutils.JOSMTestRules;
     24import org.openstreetmap.josm.tools.Pair;
     25import org.openstreetmap.josm.tools.SubclassFilteredCollection;
     26
     27import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
     28
     29/**
     30 * Unit test of {@link CreateMultipolygonAction}
     31 */
    1432public class CreateMultipolygonActionTest {
    1533
    16     @BeforeClass
    17     public static void setUp() {
    18         JOSMFixture.createUnitTestFixture().init();
    19     }
     34    /**
     35     * Setup test.
     36     */
     37    @Rule
     38    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     39    public JOSMTestRules test = new JOSMTestRules().projection();
    2040
    21     static def getRefToRoleMap(Relation relation) {
    22         def refToRole = new TreeMap<String, String>()
    23         for (i in relation.getMembers()) {
    24             refToRole.put(i.member.get("ref"), i.role);
     41    private static Map<String, String> getRefToRoleMap(Relation relation) {
     42        Map<String, String> refToRole = new TreeMap<>();
     43        for (RelationMember i : relation.getMembers()) {
     44            refToRole.put(i.getMember().get("ref"), i.getRole());
    2545        }
    2646        return refToRole;
    2747    }
    2848
    29     static def regexpSearch(String search) {
    30         def setting = new SearchAction.SearchSetting()
    31         setting.text = search
    32         setting.regexSearch = true
    33         return setting
     49    private static SearchSetting regexpSearch(String search) {
     50        SearchSetting setting = new SearchSetting();
     51        setting.text = search;
     52        setting.regexSearch = true;
     53        return setting;
     54    }
     55
     56    @SuppressWarnings("unchecked")
     57    private static Pair<SequenceCommand, Relation> createMultipolygonCommand(Collection<Way> ways, String pattern, Relation r)
     58            throws ParseError {
     59        return CreateMultipolygonAction.createMultipolygonCommand(
     60            (Collection<Way>) (Collection<?>) SubclassFilteredCollection.filter(ways, SearchCompiler.compile(regexpSearch(pattern))), r);
    3461    }
    3562
    3663    @Test
    37     public void testCreate1() {
    38         def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
    39         def mp = CreateMultipolygonAction.createMultipolygonCommand(ds.getWays(), null)
    40         assert mp.a.getDescriptionText() == "Sequence: Create multipolygon"
    41         assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer, 1.1.2:outer, 1.2:inner]"
     64    public void testCreate1() throws Exception {
     65        DataSet ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
     66        Pair<SequenceCommand, Relation> mp = CreateMultipolygonAction.createMultipolygonCommand(ds.getWays(), null);
     67        assertEquals("Sequence: Create multipolygon", mp.a.getDescriptionText());
     68        assertEquals("{1=outer, 1.1=inner, 1.1.1=outer, 1.1.2=outer, 1.2=inner}", getRefToRoleMap(mp.b).toString());
    4269    }
    4370
    4471    @Test
    45     public void testCreate2() {
    46         def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
    47         def ways = SubclassFilteredCollection.filter(ds.getWays(), SearchCompiler.compile("ref=1 OR ref:1.1."))
    48         def mp = CreateMultipolygonAction.createMultipolygonCommand(ways as Collection<Way>, null)
    49         assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1.1:inner, 1.1.2:inner]"
     72    public void testCreate2() throws Exception {
     73        DataSet ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
     74        Pair<SequenceCommand, Relation> mp = createMultipolygonCommand(ds.getWays(), "ref=1 OR ref:1.1.", null);
     75        assertEquals("{1=outer, 1.1.1=inner, 1.1.2=inner}", getRefToRoleMap(mp.b).toString());
    5076    }
    5177
    5278    @Test
    53     public void testUpdate1() {
    54         def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
    55         def ways = SubclassFilteredCollection.filter(ds.getWays(), SearchCompiler.compile(regexpSearch("ref=\".*1\$\"")))
    56         def mp = CreateMultipolygonAction.createMultipolygonCommand(ways as Collection<Way>, null)
    57         assert mp.b.getMembersCount() == 3
    58         assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer]"
    59         def ways2 = SubclassFilteredCollection.filter(ds.getWays(), SearchCompiler.compile(regexpSearch("ref=1.2")))
    60         def mp2 = CreateMultipolygonAction.createMultipolygonCommand(ways2 as Collection<Way>, mp.b)
    61         assert mp2.b.getMembersCount() == 4
    62         assert getRefToRoleMap(mp2.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer, 1.2:inner]"
     79    public void testUpdate1() throws Exception {
     80        DataSet ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
     81        Pair<SequenceCommand, Relation> mp = createMultipolygonCommand(ds.getWays(), "ref=\".*1$\"", null);
     82        assertEquals(3, mp.b.getMembersCount());
     83        assertEquals("{1=outer, 1.1=inner, 1.1.1=outer}", getRefToRoleMap(mp.b).toString());
     84        Pair<SequenceCommand, Relation> mp2 = createMultipolygonCommand(ds.getWays(), "ref=1.2", mp.b);
     85        assertEquals(4, mp2.b.getMembersCount());
     86        assertEquals("{1=outer, 1.1=inner, 1.1.1=outer, 1.2=inner}", getRefToRoleMap(mp2.b).toString());
    6387    }
    6488
    6589    @Test
    66     public void testUpdate2() {
    67         def ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
    68         def ways = SubclassFilteredCollection.filter(ds.getWays(), SearchCompiler.compile("ref=1 OR ref:1.1.1"))
    69         def mp = CreateMultipolygonAction.createMultipolygonCommand(ways as Collection<Way>, null)
    70         assert getRefToRoleMap(mp.b).toString() == "[1:outer, 1.1.1:inner]"
    71         def ways2 = SubclassFilteredCollection.filter(ds.getWays(), SearchCompiler.compile(regexpSearch("ref=1.1 OR ref=1.2 OR ref=1.1.2")))
    72         def mp2 = CreateMultipolygonAction.createMultipolygonCommand(ways2 as Collection<Way>, mp.b)
    73         assert getRefToRoleMap(mp2.b).toString() == "[1:outer, 1.1:inner, 1.1.1:outer, 1.1.2:outer, 1.2:inner]"
     90    public void testUpdate2() throws Exception {
     91        DataSet ds = OsmReader.parseDataSet(new FileInputStream(TestUtils.getTestDataRoot() + "create_multipolygon.osm"), null);
     92        Pair<SequenceCommand, Relation> mp = createMultipolygonCommand(ds.getWays(), "ref=1 OR ref:1.1.1", null);
     93        assertEquals("{1=outer, 1.1.1=inner}", getRefToRoleMap(mp.b).toString());
     94        Pair<SequenceCommand, Relation> mp2 = createMultipolygonCommand(ds.getWays(), "ref=1.1 OR ref=1.2 OR ref=1.1.2", mp.b);
     95        assertEquals("{1=outer, 1.1=inner, 1.1.1=outer, 1.1.2=outer, 1.2=inner}", getRefToRoleMap(mp2.b).toString());
    7496    }
    7597}
Note: See TracChangeset for help on using the changeset viewer.