/** * their node has no assigned id (id == 0) and is semantically equal to one of my nodes with id == * 0 * * <p>=> merge it onto my node. */ @Test public void nodeSimple_NoIdSemanticallyEqual() { Calendar cal = GregorianCalendar.getInstance(); User myUser = User.createOsmUser(1111, "my"); User theirUser = User.createOsmUser(222, "their"); Node n = new Node(); n.setCoor(new LatLon(0, 0)); n.put("key1", "value1"); n.setUser(myUser); n.setTimestamp(cal.getTime()); my.addPrimitive(n); Node n1 = new Node(); n1.setCoor(new LatLon(0, 0)); n1.put("key1", "value1"); cal.add(Calendar.HOUR, 1); Date timestamp = cal.getTime(); n1.setTimestamp(timestamp); n1.setUser(theirUser); their.addPrimitive(n1); DataSetMerger visitor = new DataSetMerger(my, their); visitor.merge(); Node n2 = my.getNodes().iterator().next(); assertEquals(0, visitor.getConflicts().size()); assertEquals("value1", n2.get("key1")); assertEquals(n1.getRawTimestamp(), n2.getRawTimestamp()); assertEquals(theirUser, n2.getUser()); assertSame(n2, n); assertNotSame(n2, n1); assertSame(n2.getDataSet(), my); }
/** * my node is incomplete, their node is complete * * <p>=> merge it onto my node. My node becomes complete */ @Test public void nodeSimple_IncompleteNode() { Node n = new Node(1); my.addPrimitive(n); Node n1 = new Node(); n1.setCoor(new LatLon(0, 0)); n1.setOsmId(1, 1); n1.put("key1", "value1"); Date timestamp = new Date(); n1.setTimestamp(timestamp); their.addPrimitive(n1); DataSetMerger visitor = new DataSetMerger(my, their); visitor.merge(); Node n2 = my.getNodes().iterator().next(); assertEquals(0, visitor.getConflicts().size()); assertEquals("value1", n2.get("key1")); assertEquals(n1.getRawTimestamp(), n2.getRawTimestamp()); assertFalse(n2.isIncomplete()); assertSame(n2, n); }