diff --git a/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java b/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
index 77954c6d1..3513fb7d1 100644
|
a
|
b
|
public abstract class AbstractPrimitive implements IPrimitive, IFilterablePrimit
|
| 645 | 645 | newKeys[index++] = tag.getKey(); |
| 646 | 646 | newKeys[index++] = tag.getValue(); |
| 647 | 647 | } |
| 648 | | keys = newKeys; |
| 649 | 648 | } |
| | 649 | keys = newKeys; |
| 650 | 650 | keysChangedImpl(originalKeys); |
| 651 | 651 | } |
| 652 | 652 | |
diff --git a/test/unit/org/openstreetmap/josm/data/osm/AbstractPrimitiveTest.java b/test/unit/org/openstreetmap/josm/data/osm/AbstractPrimitiveTest.java
index 2f8275851..fa1ea5115 100644
|
a
|
b
|
|
| 1 | 1 | // License: GPL. For details, see LICENSE file. |
| 2 | 2 | package org.openstreetmap.josm.data.osm; |
| 3 | 3 | |
| | 4 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 4 | 5 | import static org.junit.jupiter.api.Assertions.assertFalse; |
| | 6 | import static org.junit.jupiter.api.Assertions.assertNull; |
| 5 | 7 | import static org.junit.jupiter.api.Assertions.assertTrue; |
| 6 | 8 | |
| 7 | 9 | import java.util.Collections; |
| | 10 | import java.util.HashMap; |
| | 11 | import java.util.Map; |
| 8 | 12 | |
| 9 | 13 | import org.junit.jupiter.api.Test; |
| 10 | 14 | |
| … |
… |
class AbstractPrimitiveTest {
|
| 65 | 69 | assertTrue(p.hasTagDifferent("foo", "bar", "baz")); |
| 66 | 70 | assertTrue(p.hasTagDifferent("foo", Collections.singleton("bar"))); |
| 67 | 71 | } |
| | 72 | |
| | 73 | /** |
| | 74 | * Unit test of {@link AbstractPrimitive#putAll} |
| | 75 | */ |
| | 76 | @Test |
| | 77 | void testPutAll() { |
| | 78 | AbstractPrimitive p = new Node(); |
| | 79 | Map<String, String> tags = new HashMap<>(); |
| | 80 | |
| | 81 | // insert tags |
| | 82 | tags.put("a", "va1"); |
| | 83 | tags.put("b", "vb1"); |
| | 84 | p.putAll(tags); |
| | 85 | assertEquals("va1", p.get("a")); |
| | 86 | assertEquals("vb1", p.get("b")); |
| | 87 | |
| | 88 | // change tags |
| | 89 | tags.clear(); |
| | 90 | tags.put("a", "va2"); |
| | 91 | p.putAll(tags); |
| | 92 | assertEquals("va2", p.get("a")); |
| | 93 | assertEquals("vb1", p.get("b")); |
| | 94 | |
| | 95 | // change and insert tags |
| | 96 | tags.clear(); |
| | 97 | tags.put("b", "vb3"); |
| | 98 | tags.put("c", "vc3"); |
| | 99 | p.putAll(tags); |
| | 100 | assertEquals("va2", p.get("a")); |
| | 101 | assertEquals("vb3", p.get("b")); |
| | 102 | assertEquals("vc3", p.get("c")); |
| | 103 | |
| | 104 | // change and remove tags |
| | 105 | tags.clear(); |
| | 106 | tags.put("a", "va4"); |
| | 107 | tags.put("b", null); |
| | 108 | tags.put(null, null); |
| | 109 | p.putAll(tags); |
| | 110 | assertEquals("va4", p.get("a")); |
| | 111 | assertNull(p.get("b")); |
| | 112 | assertEquals("vc3", p.get("c")); |
| | 113 | } |
| 68 | 114 | } |