Changeset 53 in josm for test/org


Ignore:
Timestamp:
2006-02-14T21:07:29+01:00 (20 years ago)
Author:
imi
Message:

fixed bug in osm writer/reader: they did not saved the modified state of an object.

Location:
test/org/openstreetmap/josm/test
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • test/org/openstreetmap/josm/test/OsmWriterTest.java

    r49 r53  
    1414import org.jdom.input.SAXBuilder;
    1515import org.openstreetmap.josm.data.osm.DataSet;
     16import org.openstreetmap.josm.data.osm.LineSegment;
     17import org.openstreetmap.josm.data.osm.Node;
     18import org.openstreetmap.josm.data.osm.OsmPrimitive;
     19import org.openstreetmap.josm.data.osm.Track;
    1620import org.openstreetmap.josm.io.OsmWriter;
    1721import org.openstreetmap.josm.test.framework.Bug;
     
    2428public class OsmWriterTest extends TestCase {
    2529
     30        private Node n1;
     31        private Node n2;
     32        private Node n3;
     33        private Node n4;
     34        private Node n5;
     35        private LineSegment ls1;
     36        private LineSegment ls2;
     37        private LineSegment ls3;
     38        private Track t;
     39       
    2640        private DataSet ds;
    2741        private Element osm;
     
    7993
    8094       
     95        /**
     96         * Verify that action tag is set correctly.
     97         */
     98        public void testActionTag() throws IOException, JDOMException {
     99                int id = 1;
     100                for (OsmPrimitive osm : ds.allPrimitives())
     101                        osm.id = id++; // make all objects "old".
     102                n1.setDeleted(true);
     103                ls1.modified = true;
     104                ls1.modifiedProperties = true;
     105                ls3.modified = true;
     106                t.modifiedProperties = true;
     107                reparse();
     108               
     109                boolean foundNode = false;
     110                for (Element n : nodes) {
     111                        if (n.getAttributeValue("uid").equals(""+n1.id)) {
     112                                assertEquals("delete", n.getAttributeValue("action"));
     113                                foundNode = true;
     114                        }
     115                }
     116                assertTrue("Node found in output", foundNode);
     117
     118                boolean foundLs1 = false;
     119                boolean foundLs3 = false;
     120                for (Element lsElem : lineSegments) {
     121                        String idStr = lsElem.getAttributeValue("uid");
     122                        String action = lsElem.getAttributeValue("action");
     123                        if (idStr.equals(""+ls1.id)) {
     124                                assertEquals("Attribute action on modified data is ok", "modify", action);
     125                                foundLs1 = true;
     126                        } else if (idStr.equals(""+ls3.id)) {
     127                                assertEquals("Attribute action on modified/object data is ok", "modify/object", action);
     128                                foundLs3 = true;
     129                        }
     130                }
     131                assertTrue("LineSegments found in output", foundLs1 && foundLs3);
     132               
     133                assertEquals("Track found in output", 1, tracks.size());
     134                assertEquals("Attribute action on modifiedProperty data is ok", "modify/property", tracks.get(0).getAttributeValue("action"));
     135        }
    81136       
    82137       
     
    85140        protected void setUp() throws Exception {
    86141                super.setUp();
     142               
    87143                // create some data
    88                 ds = DataSetTestCaseHelper.createCommon();
     144                ds = new DataSet();
     145                n1 = DataSetTestCaseHelper.createNode(ds);
     146                n2 = DataSetTestCaseHelper.createNode(ds);
     147                n3 = DataSetTestCaseHelper.createNode(ds);
     148                n4 = DataSetTestCaseHelper.createNode(ds);
     149                n5 = DataSetTestCaseHelper.createNode(ds);
     150                ls1 = DataSetTestCaseHelper.createLineSegment(ds, n1, n2);
     151                ls2 = DataSetTestCaseHelper.createLineSegment(ds, n2, n3);
     152                ls3 = DataSetTestCaseHelper.createLineSegment(ds, n4, n5);
     153                t = DataSetTestCaseHelper.createTrack(ds, ls1, ls2);
     154               
    89155                reparse();
    90156        }
  • test/org/openstreetmap/josm/test/framework/DataSetTestCaseHelper.java

    r52 r53  
    11package org.openstreetmap.josm.test.framework;
     2
     3import java.util.Arrays;
    24
    35import org.openstreetmap.josm.data.GeoPoint;
     
    3335                LineSegment ls2 = createLineSegment(ds, n2, n3);
    3436                createLineSegment(ds, n4, n5);
     37                createTrack(ds, ls1, ls2);
     38                return ds;
     39        }
     40
     41        public static Track createTrack(DataSet ds, LineSegment... lineSegments) {
    3542                Track t = new Track();
    36                 t.segments.add(ls1);
    37                 t.segments.add(ls2);
     43                t.segments.addAll(Arrays.asList(lineSegments));
    3844                ds.tracks.add(t);
    39                 return ds;
     45                return t;
    4046        }
    4147       
Note: See TracChangeset for help on using the changeset viewer.