Ignore:
Timestamp:
19.02.2010 21:43:42 (2 years ago)
Author:
jttt
Message:

Fix tests

File:
1 edited

Legend:

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

    r2620 r3025  
    77import static org.junit.Assert.assertTrue; 
    88 
     9import java.io.StringWriter; 
    910import java.util.Arrays; 
    1011import java.util.Calendar; 
     
    1213import java.util.GregorianCalendar; 
    1314 
     15import org.junit.After; 
    1416import org.junit.Before; 
    1517import org.junit.Test; 
     
    5557    }*/ 
    5658 
     59    private DataSet my; 
     60    private DataSet their; 
     61 
    5762    @Before 
    5863    public void setUp() { 
    5964        User.clearUserMap(); 
     65        my = new DataSet(); 
     66        my.setVersion("0.6"); 
     67        their = new DataSet(); 
     68        their.setVersion("0.6"); 
     69    } 
     70 
     71    private void runConsistencyTests(DataSet ds) throws Exception { 
     72        StringWriter writer = new StringWriter(); 
     73        DatasetConsistencyTest test =  new DatasetConsistencyTest(ds, writer); 
     74        test.checkReferrers(); 
     75        test.checkCompleteWaysWithIncompleteNodes(); 
     76        test.searchNodes(); 
     77        test.searchWays(); 
     78        test.referredPrimitiveNotInDataset(); 
     79        test.checkZeroNodesWays(); 
     80        String result = writer.toString(); 
     81        if (result.length() > 0) 
     82            throw new RuntimeException(result); 
     83    } 
     84 
     85    @After 
     86    public void checkDatasets() throws Exception { 
     87        runConsistencyTests(my); 
     88        runConsistencyTests(their); 
    6089    } 
    6190 
     
    6897    @Test 
    6998    public void nodeSimple_IdenticalNoConflict() { 
    70         DataSet my = new DataSet(); 
    71         my.setVersion("0.6"); 
    7299        Node n = new Node(new LatLon(0,0)); 
    73100        n.setOsmId(1,1); 
     
    76103        my.addPrimitive(n); 
    77104 
    78         DataSet their = new DataSet(); 
    79         their.setVersion("0.6"); 
    80105        Node n1 = new Node(new LatLon(0,0)); 
    81106        n1.setOsmId(1,1); 
     
    107132    @Test 
    108133    public void nodeSimple_locallyUnmodifiedNoConflict() { 
    109         DataSet my = new DataSet(); 
    110         my.setVersion("0.6"); 
    111134        Node n = new Node(new LatLon(0,0)); 
    112135        n.setOsmId(1,1); 
     
    115138        my.addPrimitive(n); 
    116139 
    117         DataSet their = new DataSet(); 
    118         their.setVersion("0.6"); 
    119140        Node n1 = new Node(new LatLon(0,0)); 
    120141        n1.setOsmId(1,2); 
     
    151172    @Test 
    152173    public void nodeSimple_TagConflict() { 
    153         DataSet my = new DataSet(); 
    154         my.setVersion("0.6"); 
    155174        Node n = new Node(new LatLon(0,0)); 
    156175        n.setOsmId(1,1); 
     
    160179        my.addPrimitive(n); 
    161180 
    162         DataSet their = new DataSet(); 
    163         their.setVersion("0.6"); 
    164181        Node n1 = new Node(new LatLon(0,0)); 
    165182        n1.setOsmId(1,2); 
     
    189206    @Test 
    190207    public void nodeSimple_DeleteConflict() { 
    191         DataSet my = new DataSet(); 
    192         my.setVersion("0.6"); 
    193208        Node n = new Node(1, 1); 
    194209        n.setCoor(new LatLon(0,0)); 
     
    197212        my.addPrimitive(n); 
    198213 
    199         DataSet their = new DataSet(); 
    200         their.setVersion("0.6"); 
    201214        Node n1 = new Node(new LatLon(0,0)); 
    202215        n1.setOsmId(1,2); 
     
    224237    @Test 
    225238    public void nodeSimple_VisibleConflict() { 
    226         DataSet my = new DataSet(); 
    227         my.setVersion("0.6"); 
    228239        Node n = new Node(new LatLon(0,0)); 
    229240        n.setOsmId(1,1); 
     
    232243        my.addPrimitive(n); 
    233244 
    234         DataSet their = new DataSet(); 
    235         their.setVersion("0.6"); 
    236245        Node n1 = new Node(new LatLon(0,0)); 
    237246        n1.setOsmId(1,2); 
     
    260269    @Test 
    261270    public void nodeSimple_DeleteConflict_2() { 
    262         DataSet my = new DataSet(); 
    263         my.setVersion("0.6"); 
    264271        Node n = new Node(new LatLon(0,0)); 
    265272        n.setOsmId(1,1); 
     
    267274        my.addPrimitive(n); 
    268275 
    269         DataSet their = new DataSet(); 
    270         their.setVersion("0.6"); 
    271276        Node n1 = new Node(new LatLon(0,0)); 
    272277        n1.setOsmId(1,1); 
     
    293298    @Test 
    294299    public void nodeSimple_DeleteConflict_3() { 
    295         DataSet my = new DataSet(); 
    296         my.setVersion("0.6"); 
    297300        Node n = new Node(new LatLon(1,1)); 
    298301        n.setDeleted(true); 
    299302        my.addPrimitive(n); 
    300303 
    301         DataSet their = new DataSet(); 
    302         their.setVersion("0.6"); 
    303304        Node n1 = new Node(new LatLon(1,1)); 
    304305        their.addPrimitive(n1); 
     
    321322    @Test 
    322323    public void nodeSimple_DeleteConflict_4() { 
    323         DataSet my = new DataSet(); 
    324         my.setVersion("0.6"); 
    325324        Node n = new Node(new LatLon(1,1)); 
    326325        n.setDeleted(true); 
    327326        my.addPrimitive(n); 
    328327 
    329         DataSet their = new DataSet(); 
    330         their.setVersion("0.6"); 
    331328        Node n1 = new Node(new LatLon(1,1)); 
    332329        n1.setDeleted(true); 
     
    351348    @Test 
    352349    public void nodeSimple_InvisibleNodeInTheirDataset() { 
    353         DataSet my = new DataSet(); 
    354         my.setVersion("0.6"); 
    355350        Node n = new Node(new LatLon(0,0)); 
    356351        n.setOsmId(1,1); 
     
    358353        my.addPrimitive(n); 
    359354 
    360         DataSet their = new DataSet(); 
    361         their.setVersion("0.6"); 
    362355        Node n1 = new Node(new LatLon(0,0)); 
    363356        n1.setOsmId(2,1); 
     
    390383        User theirUser = User.createOsmUser(222, "their"); 
    391384 
    392         DataSet my = new DataSet(); 
    393         my.setVersion("0.6"); 
    394385        Node n = new Node(); 
    395386        n.setCoor(new LatLon(0,0)); 
     
    400391        my.addPrimitive(n); 
    401392 
    402         DataSet their = new DataSet(); 
    403         their.setVersion("0.6"); 
    404393        Node n1 = new Node(); 
    405394        n1.setCoor(new LatLon(0,0)); 
     
    434423    public void nodeSimple_IncompleteNode() { 
    435424 
    436         DataSet my = new DataSet(); 
    437         my.setVersion("0.6"); 
    438425        Node n = new Node(1); 
    439426        my.addPrimitive(n); 
    440427 
    441         DataSet their = new DataSet(); 
    442         their.setVersion("0.6"); 
    443428        Node n1 = new Node(); 
    444429        n1.setCoor(new LatLon(0,0)); 
     
    472457 
    473458        // -- the target dataset 
    474         DataSet target = new DataSet(); 
    475         target.setVersion("0.6"); 
    476459 
    477460        Node n1 = new Node(); 
    478461        n1.setCoor(new LatLon(0,0)); 
    479462        n1.setOsmId(1,1); 
    480         target.addPrimitive(n1); 
     463        my.addPrimitive(n1); 
    481464 
    482465        Node n2 = new Node(); 
     
    484467        n2.setOsmId(2,1); 
    485468 
    486         target.addPrimitive(n2); 
     469        my.addPrimitive(n2); 
    487470 
    488471        Way myWay = new Way(); 
     
    491474        myWay.addNode(n1); 
    492475        myWay.addNode(n2); 
    493         target.addPrimitive(myWay); 
     476        my.addPrimitive(myWay); 
    494477 
    495478        // -- the source data set 
    496         DataSet source = new DataSet(); 
    497         source.setVersion("0.6"); 
    498479 
    499480        Node n3 = new Node(new LatLon(0,0)); 
    500481        n3.setOsmId(1,1); 
    501         source.addPrimitive(n3); 
     482        their.addPrimitive(n3); 
    502483 
    503484        Node n4 = new Node(new LatLon(1,1)); 
    504485        n4.setOsmId(2,1); 
    505         source.addPrimitive(n4); 
     486        their.addPrimitive(n4); 
    506487 
    507488        Way theirWay = new Way(); 
     
    511492        theirWay.addNode(n3); 
    512493        theirWay.addNode(n4); 
    513         source.addPrimitive(theirWay); 
    514  
    515  
    516         DataSetMerger visitor = new DataSetMerger(target,source); 
     494        their.addPrimitive(theirWay); 
     495 
     496 
     497        DataSetMerger visitor = new DataSetMerger(my,their); 
    517498        visitor.merge(); 
    518499 
    519500        // -- tests 
    520         Way merged = (Way)target.getPrimitiveById(3, OsmPrimitiveType.WAY); 
     501        Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY); 
    521502        assertEquals(0,visitor.getConflicts().size()); 
    522503        assertEquals("value1",merged.get("key1")); 
     
    528509        assertEquals(2,merged.getNode(1).getId()); 
    529510        assertTrue(merged == myWay); 
    530         assertTrue(merged.getDataSet() == target); 
    531  
    532         Node mergedNode = (Node)target.getPrimitiveById(1, OsmPrimitiveType.NODE); 
     511        assertTrue(merged.getDataSet() == my); 
     512 
     513        Node mergedNode = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE); 
    533514        assertTrue(mergedNode == n1); 
    534         mergedNode = (Node)target.getPrimitiveById(2, OsmPrimitiveType.NODE); 
     515        mergedNode = (Node)my.getPrimitiveById(2, OsmPrimitiveType.NODE); 
    535516        assertTrue(mergedNode == n2); 
    536517 
     
    549530 
    550531        // -- my data set 
    551         DataSet my = new DataSet(); 
    552         my.setVersion("0.6"); 
    553532 
    554533        Node n1 = new Node(new LatLon(0,0)); 
     
    567546 
    568547        // --- their data set 
    569         DataSet their = new DataSet(); 
    570         their.setVersion("0.6"); 
    571548 
    572549        Node n3 = new Node(new LatLon(0,0)); 
     
    624601 
    625602        // -- the target dataset 
    626         DataSet target = new DataSet(); 
    627         target.setVersion("0.6"); 
    628603 
    629604        Node n1 = new Node(new LatLon(0,0)); 
    630605        n1.setOsmId(1,1); 
    631         target.addPrimitive(n1); 
     606        my.addPrimitive(n1); 
    632607 
    633608        Node n2 = new Node(new LatLon(1,1)); 
    634609        n2.setOsmId(2,1); 
    635         target.addPrimitive(n2); 
     610        my.addPrimitive(n2); 
    636611 
    637612        Way myWay = new Way(); 
     
    642617        myWay.setModified(true); 
    643618        myWay.put("key1", "value1"); 
    644         target.addPrimitive(myWay); 
     619        my.addPrimitive(myWay); 
    645620 
    646621        // -- the source dataset 
    647         DataSet source = new DataSet(); 
    648         source.setVersion("0.6"); 
    649622 
    650623        Node n3 = new Node(new LatLon(0,0)); 
    651624        n3.setOsmId(1,1); 
    652         source.addPrimitive(n3); 
     625        their.addPrimitive(n3); 
    653626 
    654627        Node n5 = new Node(new LatLon(1,1)); 
    655628        n5.setOsmId(4,1); 
    656         source.addPrimitive(n5); 
     629        their.addPrimitive(n5); 
    657630 
    658631        Node n4 = new Node(new LatLon(2,2)); 
    659632        n4.setOsmId(2,1); 
    660633        n4.put("key1", "value1"); 
    661         source.addPrimitive(n4); 
     634        their.addPrimitive(n4); 
    662635 
    663636 
     
    668641        theirWay.addNode(n5); // insert a node 
    669642        theirWay.addNode(n4); // this one is updated 
    670         source.addPrimitive(theirWay); 
    671  
    672  
    673         DataSetMerger visitor = new DataSetMerger(target,source); 
    674         visitor.merge(); 
    675  
    676         Way merged = (Way)target.getPrimitiveById(3, OsmPrimitiveType.WAY); 
     643        their.addPrimitive(theirWay); 
     644 
     645 
     646        DataSetMerger visitor = new DataSetMerger(my, their); 
     647        visitor.merge(); 
     648 
     649        Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY); 
    677650        assertEquals(1,visitor.getConflicts().size()); 
    678651        assertEquals(3,merged.getId()); 
     
    694667    public void waySimple_TheirVersionNotVisible() { 
    695668 
    696         DataSet my = new DataSet(); 
    697         my.setVersion("0.6"); 
    698  
    699         Node n1 = new Node(new LatLon(0,0)); 
    700         n1.setOsmId(1,1); 
    701         my.addPrimitive(n1); 
    702  
    703         Node n2 = new Node(new LatLon(1,1)); 
    704         n2.setOsmId(2,1); 
    705         my.addPrimitive(n2); 
     669 
     670        Node mn1 = new Node(new LatLon(0,0)); 
     671        mn1.setOsmId(1,1); 
     672        my.addPrimitive(mn1); 
     673 
     674        Node mn2 = new Node(new LatLon(1,1)); 
     675        mn2.setOsmId(2,1); 
     676        my.addPrimitive(mn2); 
    706677 
    707678        Way myWay = new Way(); 
    708679        myWay.setOsmId(3,1); 
    709         myWay.addNode(n1); 
    710         myWay.addNode(n2); 
     680        myWay.addNode(mn1); 
     681        myWay.addNode(mn2); 
    711682        my.addPrimitive(myWay); 
    712683 
    713         DataSet their = new DataSet(); 
    714         their.setVersion("0.6"); 
    715684 
    716685        Way theirWay = new Way(); 
     
    739708 
    740709        // -- my data set 
    741         DataSet my = new DataSet(); 
    742         my.setVersion("0.6"); 
    743710 
    744711        Node n1 = new Node(new LatLon(0,0)); 
     
    756723 
    757724        // -- their data set 
    758         DataSet their = new DataSet(); 
    759         their.setVersion("0.6"); 
    760725 
    761726        Node n3 = new Node(new LatLon(0,0)); 
     
    801766 
    802767        // -- my data set 
    803         DataSet my = new DataSet(); 
    804         my.setVersion("0.6"); 
    805768 
    806769        Node n1 = new Node(new LatLon(0,0)); 
     
    816779 
    817780        // -- their data set 
    818         DataSet their = new DataSet(); 
    819         their.setVersion("0.6"); 
    820781 
    821782        Node n3 = new Node(new LatLon(0,0)); 
     
    855816     * 
    856817     * => the merged way should include two nodes only. the deleted node should still be 
    857      * in the data set 
     818     * in the data set. 
    858819     * 
    859820     */ 
     
    862823 
    863824        // -- my dataset 
    864         DataSet my = new DataSet(); 
    865         my.setVersion("0.6"); 
    866  
    867         Node n1 = new Node(new LatLon(0,0)); 
    868         n1.setOsmId(1,1); 
    869         n1.setDeleted(true); 
    870         my.addPrimitive(n1); 
    871  
    872         DataSet their = new DataSet(); 
    873         their.setVersion("0.6"); 
    874  
    875         Node n3 = new Node(new LatLon(0,0)); 
    876         n3.setOsmId(1,1); 
    877         their.addPrimitive(n3); 
    878  
    879         Node n4 = new Node(new LatLon(1,1)); 
    880         n4.setOsmId(2,1); 
    881         their.addPrimitive(n4); 
    882  
    883         Node n5 = new Node(new LatLon(2,2)); 
    884         n5.setOsmId(3,1); 
    885         their.addPrimitive(n5); 
     825 
     826        Node mn1 = new Node(new LatLon(0,0)); 
     827        mn1.setOsmId(1,1); 
     828        mn1.setDeleted(true); 
     829        my.addPrimitive(mn1); 
     830 
     831 
     832        Node tn1 = new Node(new LatLon(0,0)); 
     833        tn1.setOsmId(1,1); 
     834        their.addPrimitive(tn1); 
     835 
     836        Node tn2 = new Node(new LatLon(1,1)); 
     837        tn2.setOsmId(2,1); 
     838        their.addPrimitive(tn2); 
     839 
     840        Node tn3 = new Node(new LatLon(2,2)); 
     841        tn3.setOsmId(3,1); 
     842        their.addPrimitive(tn3); 
    886843 
    887844        // -- their data set 
    888845        Way theirWay = new Way(); 
    889846        theirWay.setOsmId(4,1); 
    890         theirWay.addNode(n3); 
    891         theirWay.addNode(n4); 
    892         theirWay.addNode(n5); 
     847        theirWay.addNode(tn1); 
     848        theirWay.addNode(tn2); 
     849        theirWay.addNode(tn3); 
    893850        User user = User.getById(1111); 
    894851        if (user == null) { 
     
    902859        visitor.merge(); 
    903860 
    904         assertEquals(0,visitor.getConflicts().size()); 
    905  
    906         Way myWay = (Way)my.getPrimitiveById(4,OsmPrimitiveType.WAY); 
    907         assertEquals(2, myWay.getNodesCount()); 
     861        assertEquals(1, visitor.getConflicts().size()); 
     862 
     863        Way myWay = (Way)my.getPrimitiveById(4, OsmPrimitiveType.WAY); 
     864        assertEquals(3, myWay.getNodesCount()); 
    908865 
    909866        Node n = (Node)my.getPrimitiveById(1,OsmPrimitiveType.NODE); 
     
    926883    public void relationComplex_mergingADeletedNode() { 
    927884 
    928         DataSet my = new DataSet(); 
    929         my.setVersion("0.6"); 
    930885 
    931886        Node n1 = new Node(new LatLon(0,0)); 
     
    934889        my.addPrimitive(n1); 
    935890 
    936         DataSet their = new DataSet(); 
    937         their.setVersion("0.6"); 
    938891 
    939892        Node n3 = new Node(new LatLon(0,0)); 
     
    979932    @Test 
    980933    public void newIncompleteWay() { 
    981         DataSet source = new DataSet(); 
    982         source.setVersion("0.6"); 
    983934 
    984935        Node n1 = new Node(1); 
    985         source.addPrimitive(n1); 
     936        their.addPrimitive(n1); 
    986937 
    987938        Node n2 = new Node(2); 
    988         source.addPrimitive(n2); 
     939        their.addPrimitive(n2); 
    989940 
    990941        Way w3 = new Way(3); 
    991942        w3.setNodes(Arrays.asList(n1,n2)); 
    992         source.addPrimitive(w3); 
     943        their.addPrimitive(w3); 
    993944        assertTrue(w3.isIncomplete()); 
    994945 
    995         DataSet target = new DataSet(); 
    996         target.setVersion("0.6"); 
    997  
    998         DataSetMerger visitor = new DataSetMerger(target,source); 
    999         visitor.merge(); 
    1000  
    1001         assertEquals(0,visitor.getConflicts().size()); 
    1002  
    1003         OsmPrimitive p= target.getPrimitiveById(1, OsmPrimitiveType.NODE); 
     946 
     947        DataSetMerger visitor = new DataSetMerger(my, their); 
     948        visitor.merge(); 
     949 
     950        assertEquals(0,visitor.getConflicts().size()); 
     951 
     952        OsmPrimitive p= my.getPrimitiveById(1, OsmPrimitiveType.NODE); 
    1004953        assertNotNull(p); 
    1005954        assertTrue(p.isIncomplete()); 
    1006         p= target.getPrimitiveById(2, OsmPrimitiveType.NODE); 
     955        p= my.getPrimitiveById(2, OsmPrimitiveType.NODE); 
    1007956        assertNotNull(p); 
    1008957        assertTrue(p.isIncomplete()); 
    1009         p= target.getPrimitiveById(3, OsmPrimitiveType.WAY); 
     958        p= my.getPrimitiveById(3, OsmPrimitiveType.WAY); 
    1010959        assertNotNull(p); 
    1011960        assertTrue(p.isIncomplete()); 
    1012961 
    1013         Way w = (Way)target.getPrimitiveById(3, OsmPrimitiveType.WAY); 
     962        Way w = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY); 
    1014963        assertNotNull(w); 
    1015964        assertTrue(p.isIncomplete()); 
     
    1026975    @Test 
    1027976    public void incompleteWayOntoCompleteWay() { 
    1028         DataSet their = new DataSet(); 
    1029         their.setVersion("0.6"); 
    1030977 
    1031978        // an incomplete node 
     
    1042989        their.addPrimitive(w3); 
    1043990 
    1044         DataSet my = new DataSet(); 
    1045         my.setVersion("0.6"); 
    1046991 
    1047992        Node n4 = new Node(new LatLon(0,0)); 
     
    10881033 
    10891034        // -- source dataset 
    1090         DataSet source = new DataSet(); 
    1091         source.setVersion("0.6"); 
    10921035 
    10931036        // an complete node 
    10941037        Node n1 = new Node(1, 1); 
    10951038        n1.setCoor(new LatLon(1,1)); 
    1096         source.addPrimitive(n1); 
     1039        their.addPrimitive(n1); 
    10971040 
    10981041        // another complete node 
    10991042        Node n2 = new Node(2, 1); 
    11001043        n2.setCoor(new LatLon(2,2)); 
    1101         source.addPrimitive(n2); 
     1044        their.addPrimitive(n2); 
    11021045 
    11031046        // --- target dataset 
    1104         DataSet target = new DataSet(); 
    1105         target.setVersion("0.6"); 
    11061047 
    11071048        Node n4 = new Node(1); 
    1108         target.addPrimitive(n4); 
     1049        my.addPrimitive(n4); 
    11091050 
    11101051        Node n5 = new Node(2); 
    1111         target.addPrimitive(n5); 
     1052        my.addPrimitive(n5); 
    11121053 
    11131054        Way w6 = new Way(3, 1); 
    11141055        w6.addNode(n4); 
    11151056        w6.addNode(n5); 
    1116         target.addPrimitive(w6); 
     1057        my.addPrimitive(w6); 
    11171058 
    11181059        //-- merge it 
    1119         DataSetMerger visitor = new DataSetMerger(target,source); 
     1060        DataSetMerger visitor = new DataSetMerger(my, their); 
    11201061        visitor.merge(); 
    11211062 
     
    11231064        assertEquals(0,visitor.getConflicts().size()); 
    11241065 
    1125         Node n = (Node)target.getPrimitiveById(1, OsmPrimitiveType.NODE); 
     1066        Node n = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE); 
    11261067        assertNotNull(n); 
    11271068        assertFalse(n.isIncomplete()); 
    11281069 
    1129         n = (Node)target.getPrimitiveById(2, OsmPrimitiveType.NODE); 
     1070        n = (Node)my.getPrimitiveById(2, OsmPrimitiveType.NODE); 
    11301071        assertNotNull(n); 
    11311072        assertFalse(n.isIncomplete()); 
    11321073 
    1133         Way w = (Way)target.getPrimitiveById(3, OsmPrimitiveType.WAY); 
     1074        Way w = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY); 
    11341075        assertNotNull(w); 
    11351076        assertFalse(w.hasIncompleteNodes()); 
Note: See TracChangeset for help on using the changeset viewer.