Changeset 2443 in josm for trunk/test/unit


Ignore:
Timestamp:
2009-11-13T10:24:58+01:00 (15 years ago)
Author:
Gubaer
Message:

Fixes problems with merging

File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/osm/DataSetMergerTest.java

    r2435 r2443  
    11// License: GPL. For details, see LICENSE file.
    2 package org.openstreetmap.josm.data.osm.visitor;
     2package org.openstreetmap.josm.data.osm;
    33
    44import static org.junit.Assert.assertEquals;
     
    2121import org.openstreetmap.josm.Main;
    2222import org.openstreetmap.josm.data.coor.LatLon;
    23 import org.openstreetmap.josm.data.osm.DataSet;
    24 import org.openstreetmap.josm.data.osm.DataSetMerger;
    25 import org.openstreetmap.josm.data.osm.Node;
    26 import org.openstreetmap.josm.data.osm.OsmPrimitive;
    27 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
    28 import org.openstreetmap.josm.data.osm.Relation;
    29 import org.openstreetmap.josm.data.osm.RelationMember;
    30 import org.openstreetmap.josm.data.osm.User;
    31 import org.openstreetmap.josm.data.osm.Way;
    3223import org.openstreetmap.josm.data.projection.Mercator;
    3324
    34 public class MergeVisitorTest {
    35     private static Logger logger = Logger.getLogger(MergeVisitorTest.class.getName());
     25public class DataSetMergerTest {
     26    private static Logger logger = Logger.getLogger(DataSetMergerTest.class.getName());
    3627
    3728    static Properties testProperties;
     
    4637            //
    4738            try {
    48                 testProperties.load(MergeVisitorTest.class.getResourceAsStream("/test-unit-env.properties"));
     39                testProperties.load(DataSetMergerTest.class.getResourceAsStream("/test-unit-env.properties"));
    4940            } catch(Exception e){
    5041                logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "/test-unit-env.properties"));
     
    10697        assertEquals(false, n2.isModified());
    10798        assertEquals("value1", n2.get("key1"));
     99
     100        // merge target not modified after merging
     101        assertTrue(!n2.isModified());
    108102    }
    109103
     
    145139        assertEquals("value1-new", n2.get("key1"));
    146140        assertEquals("value2", n2.get("key2"));
     141
     142        // the merge target should not be modified
     143        assertTrue(!n2.isModified());
    147144    }
    148145
     
    479476    public void waySimple_IdenicalNodesDifferentTags() {
    480477
    481 
    482         DataSet my = new DataSet();
    483         my.setVersion("0.6");
     478        // -- the target dataset
     479        DataSet target = new DataSet();
     480        target.setVersion("0.6");
    484481
    485482        Node n1 = new Node();
    486483        n1.setCoor(new LatLon(0,0));
    487484        n1.setOsmId(1,1);
    488         my.addPrimitive(n1);
    489 
     485        target.addPrimitive(n1);
    490486
    491487        Node n2 = new Node();
     
    493489        n2.setOsmId(2,1);
    494490
    495         my.addPrimitive(n2);
     491        target.addPrimitive(n2);
    496492
    497493        Way myWay = new Way();
     
    500496        myWay.addNode(n1);
    501497        myWay.addNode(n2);
    502         my.addPrimitive(myWay);
    503 
    504         DataSet their = new DataSet();
    505         their.setVersion("0.6");
     498        target.addPrimitive(myWay);
     499
     500        // -- the source data set
     501        DataSet source = new DataSet();
     502        source.setVersion("0.6");
    506503
    507504        Node n3 = new Node(new LatLon(0,0));
    508505        n3.setOsmId(1,1);
    509         their.addPrimitive(n3);
     506        source.addPrimitive(n3);
    510507
    511508        Node n4 = new Node(new LatLon(1,1));
    512509        n4.setOsmId(2,1);
    513         their.addPrimitive(n4);
     510        source.addPrimitive(n4);
    514511
    515512        Way theirWay = new Way();
     
    519516        theirWay.addNode(n3);
    520517        theirWay.addNode(n4);
    521         their.addPrimitive(theirWay);
    522 
    523 
    524         DataSetMerger visitor = new DataSetMerger(my,their);
    525         visitor.merge();
    526 
    527         Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
     518        source.addPrimitive(theirWay);
     519
     520
     521        DataSetMerger visitor = new DataSetMerger(target,source);
     522        visitor.merge();
     523
     524        // -- tests
     525        Way merged = (Way)target.getPrimitiveById(3, OsmPrimitiveType.WAY);
    528526        assertEquals(0,visitor.getConflicts().size());
    529527        assertEquals("value1",merged.get("key1"));
     
    535533        assertEquals(2,merged.getNode(1).getId());
    536534        assertTrue(merged == myWay);
    537         assertTrue(merged.getDataSet() == my);
    538 
    539         Node mergedNode = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE);
     535        assertTrue(merged.getDataSet() == target);
     536
     537        Node mergedNode = (Node)target.getPrimitiveById(1, OsmPrimitiveType.NODE);
    540538        assertTrue(mergedNode == n1);
    541         mergedNode = (Node)my.getPrimitiveById(2, OsmPrimitiveType.NODE);
     539        mergedNode = (Node)target.getPrimitiveById(2, OsmPrimitiveType.NODE);
    542540        assertTrue(mergedNode == n2);
     541
     542        assertTrue(!merged.isModified());
    543543    }
    544544
     
    572572
    573573        // --- their data set
    574 
    575574        DataSet their = new DataSet();
    576575        their.setVersion("0.6");
     
    601600        visitor.merge();
    602601
     602        // -- tests
    603603        Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
    604604        assertEquals(0,visitor.getConflicts().size());
     
    614614        assertTrue(merged.getNode(1) != n5); // must be clone of the original node in their
    615615        assertTrue(merged.getNode(2) == n2);
     616
     617        assertTrue(!merged.isModified());  // the target wasn't modified before merging, it
     618        // mustn't be after merging
    616619    }
    617620
     
    625628    public void waySimple_DifferentNodesAndMyIsModified() {
    626629
    627         DataSet my = new DataSet();
    628         my.setVersion("0.6");
     630        // -- the target dataset
     631        DataSet target = new DataSet();
     632        target.setVersion("0.6");
    629633
    630634        Node n1 = new Node(new LatLon(0,0));
    631635        n1.setOsmId(1,1);
    632         my.addPrimitive(n1);
     636        target.addPrimitive(n1);
    633637
    634638        Node n2 = new Node(new LatLon(1,1));
    635639        n2.setOsmId(2,1);
    636         my.addPrimitive(n2);
     640        target.addPrimitive(n2);
    637641
    638642        Way myWay = new Way();
     
    643647        myWay.setModified(true);
    644648        myWay.put("key1", "value1");
    645         my.addPrimitive(myWay);
    646 
    647         DataSet their = new DataSet();
    648         their.setVersion("0.6");
     649        target.addPrimitive(myWay);
     650
     651        // -- the source dataset
     652        DataSet source = new DataSet();
     653        source.setVersion("0.6");
    649654
    650655        Node n3 = new Node(new LatLon(0,0));
    651656        n3.setOsmId(1,1);
    652         their.addPrimitive(n3);
     657        source.addPrimitive(n3);
    653658
    654659        Node n5 = new Node(new LatLon(1,1));
    655660        n5.setOsmId(4,1);
    656         their.addPrimitive(n5);
     661        source.addPrimitive(n5);
    657662
    658663        Node n4 = new Node(new LatLon(2,2));
    659664        n4.setOsmId(2,1);
    660665        n4.put("key1", "value1");
    661         their.addPrimitive(n4);
     666        source.addPrimitive(n4);
    662667
    663668
     
    668673        theirWay.addNode(n5); // insert a node
    669674        theirWay.addNode(n4); // this one is updated
    670         their.addPrimitive(theirWay);
    671 
    672 
    673         DataSetMerger visitor = new DataSetMerger(my,their);
    674         visitor.merge();
    675 
    676         Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
     675        source.addPrimitive(theirWay);
     676
     677
     678        DataSetMerger visitor = new DataSetMerger(target,source);
     679        visitor.merge();
     680
     681        Way merged = (Way)target.getPrimitiveById(3, OsmPrimitiveType.WAY);
    677682        assertEquals(1,visitor.getConflicts().size());
    678683        assertEquals(3,merged.getId());
     
    786791        assertTrue(merged.getNode(0) == n1);
    787792        assertTrue(merged.getNode(1) == n2);
     793
     794        assertTrue(!merged.isModified());
    788795    }
    789796
     
    842849        assertTrue(merged.getNode(0) == n1);
    843850        assertTrue(merged.getNode(1) == n2);
     851
     852        assertTrue(!merged.isModified());
    844853    }
    845854
     
    901910        assertTrue(!myWay.getNodes().contains(n));
    902911        assertTrue(n != null);
     912
     913        //a node was removed from the way,it should thus be modified
     914        assertTrue(myWay.isModified());
    903915    }
    904916
     
    956968        Node n = (Node)my.getPrimitiveById(1,OsmPrimitiveType.NODE);
    957969        assertTrue(n != null);
     970
     971        assertTrue(r.isModified());
    958972    }
    959973
Note: See TracChangeset for help on using the changeset viewer.