Ticket #23256: 23256.patch

File 23256.patch, 2.7 KB (added by marcello@…, 22 months ago)

test and patch

  • src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java

    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  
    645645                newKeys[index++] = tag.getKey();
    646646                newKeys[index++] = tag.getValue();
    647647            }
    648             keys = newKeys;
    649648        }
     649        keys = newKeys;
    650650        keysChangedImpl(originalKeys);
    651651    }
    652652
  • test/unit/org/openstreetmap/josm/data/osm/AbstractPrimitiveTest.java

    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  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.data.osm;
    33
     4import static org.junit.jupiter.api.Assertions.assertEquals;
    45import static org.junit.jupiter.api.Assertions.assertFalse;
     6import static org.junit.jupiter.api.Assertions.assertNull;
    57import static org.junit.jupiter.api.Assertions.assertTrue;
    68
    79import java.util.Collections;
     10import java.util.HashMap;
     11import java.util.Map;
    812
    913import org.junit.jupiter.api.Test;
    1014
    class AbstractPrimitiveTest {  
    6569        assertTrue(p.hasTagDifferent("foo", "bar", "baz"));
    6670        assertTrue(p.hasTagDifferent("foo", Collections.singleton("bar")));
    6771    }
     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    }
    68114}