Ignore:
Timestamp:
2016-02-21T06:04:15+01:00 (8 years ago)
Author:
Don-vip
Message:

add more unit tests

File:
1 edited

Legend:

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

    r9675 r9845  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.actions.upload;
     3
     4import static org.junit.Assert.assertEquals;
     5import static org.junit.Assert.assertFalse;
     6import static org.junit.Assert.assertNotNull;
     7import static org.junit.Assert.assertTrue;
     8
     9import java.util.Arrays;
     10import java.util.Collection;
    311
    412import org.junit.BeforeClass;
    513import org.junit.Test;
    614import org.openstreetmap.josm.JOSMFixture;
     15import org.openstreetmap.josm.Main;
     16import org.openstreetmap.josm.command.PseudoCommand;
     17import org.openstreetmap.josm.command.SequenceCommand;
    718import org.openstreetmap.josm.data.APIDataSet;
     19import org.openstreetmap.josm.data.osm.Node;
     20import org.openstreetmap.josm.data.osm.OsmPrimitive;
     21import org.openstreetmap.josm.data.osm.Relation;
     22import org.openstreetmap.josm.data.osm.Way;
    823
    924/**
     
    1732    @BeforeClass
    1833    public static void setUpBeforeClass() {
    19         JOSMFixture.createUnitTestFixture().init();
     34        JOSMFixture.createUnitTestFixture().init(true);
    2035    }
    2136
     
    2540    @Test
    2641    public void testCheckUpload() {
     42        // Empty data set
     43        Main.main.undoRedo.commands.clear();
    2744        new FixDataHook().checkUpload(new APIDataSet());
     45        assertTrue(Main.main.undoRedo.commands.isEmpty());
     46
     47        // Complete data set
     48        Node emptyNode = new Node();
     49        Way emptyWay = new Way();
     50        Relation emptyRelation = new Relation();
     51        Way w1 = new Way();
     52        w1.put("color", "test");
     53        Way w2 = new Way();
     54        w2.put("highway", "ford");
     55        Way w3 = new Way();
     56        w3.put("oneway", "false");
     57        Way w4 = new Way();
     58        w4.put("oneway", "0");
     59        Way w5 = new Way();
     60        w5.put("oneway", "true");
     61        Way w6 = new Way();
     62        w6.put("oneway", "1");
     63        Way w7 = new Way();
     64        w7.put("highway", "stile");
     65        Relation r1 = new Relation();
     66        r1.put("type", "multipolygon");
     67        r1.put("boundary", "administrative");
     68        Relation r2 = new Relation();
     69        r2.put("foo", "space_end ");
     70        r2.put("bar", " space_begin ");
     71        r2.put("baz", " space_both ");
     72        r2.put(" space_begin", "test");
     73        r2.put("space_end ", "test");
     74        r2.put(" space_both ", "test");
     75        APIDataSet ads = new APIDataSet();
     76        ads.init(Arrays.asList(emptyNode, emptyWay, emptyRelation, w1, w2, w3, w4, w5, w6, w7, r1, r2));
     77
     78        Main.main.undoRedo.commands.clear();
     79        new FixDataHook().checkUpload(ads);
     80        assertEquals(1, Main.main.undoRedo.commands.size());
     81
     82        SequenceCommand seq = (SequenceCommand) Main.main.undoRedo.commands.iterator().next();
     83        Collection<? extends OsmPrimitive> prims = seq.getParticipatingPrimitives();
     84        assertNotNull(prims);
     85        assertEquals(9, prims.size());
     86        for (OsmPrimitive o : Arrays.asList(w1, w2, w3, w4, w5, w6, w7, r1, r2)) {
     87            assertTrue(o.toString(), prims.contains(o));
     88        }
     89        Collection<PseudoCommand> cmds = seq.getChildren();
     90        assertNotNull(cmds);
     91        assertEquals(9, cmds.size());
     92
     93        assertTrue(seq.executeCommand());
     94
     95        assertFalse(w1.hasKey("color"));
     96        assertTrue(w1.hasKey("colour"));
     97
     98        assertFalse(w2.hasKey("highway"));
     99        assertTrue(w2.hasKey("ford"));
     100
     101        assertFalse("false".equals(w3.get("oneway")));
     102        assertTrue("no".equals(w3.get("oneway")));
     103
     104        assertFalse("0".equals(w4.get("oneway")));
     105        assertTrue("no".equals(w4.get("oneway")));
     106
     107        assertFalse("true".equals(w5.get("oneway")));
     108        assertTrue("yes".equals(w5.get("oneway")));
     109
     110        assertFalse("1".equals(w6.get("oneway")));
     111        assertTrue("yes".equals(w6.get("oneway")));
     112
     113        assertFalse(w7.hasKey("highway"));
     114        assertTrue(w7.hasKey("barrier"));
     115
     116        assertFalse("multipolygon".equals(r1.get("type")));
     117        assertTrue("boundary".equals(r1.get("type")));
     118
     119        assertTrue("space_end".equals(r2.get("foo")));
     120        assertTrue("space_begin".equals(r2.get("bar")));
     121        assertTrue("space_both".equals(r2.get("baz")));
     122        assertFalse(r2.hasKey(" space_begin"));
     123        assertFalse(r2.hasKey("space_end "));
     124        assertFalse(r2.hasKey(" space_both "));
     125        assertTrue(r2.hasKey("space_begin"));
     126        assertTrue(r2.hasKey("space_end"));
     127        assertTrue(r2.hasKey("space_both"));
    28128    }
    29129}
Note: See TracChangeset for help on using the changeset viewer.