Ignore:
Timestamp:
2023-09-18T17:54:36+02:00 (17 months ago)
Author:
taylor.smock
Message:

Fix #16998: Add parent_osm_primitives and convert_primitives_to_string

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/FunctionsTest.java

    r18664 r18829  
    22package org.openstreetmap.josm.gui.mappaint.mapcss;
    33
     4import static org.junit.jupiter.api.Assertions.assertAll;
    45import static org.junit.jupiter.api.Assertions.assertEquals;
     6import static org.junit.jupiter.api.Assertions.assertFalse;
    57import static org.junit.jupiter.api.Assertions.assertNotNull;
    68import static org.junit.jupiter.api.Assertions.assertNull;
     9import static org.junit.jupiter.api.Assertions.assertSame;
    710import static org.junit.jupiter.api.Assertions.assertTrue;
    811import static org.openstreetmap.josm.data.osm.OsmPrimitiveType.NODE;
    912
     13import java.util.Arrays;
    1014import java.util.Collections;
     15import java.util.List;
    1116import java.util.Objects;
    1217
     
    1419import org.openstreetmap.josm.TestUtils;
    1520import org.openstreetmap.josm.data.coor.LatLon;
     21import org.openstreetmap.josm.data.osm.IPrimitive;
    1622import org.openstreetmap.josm.data.osm.Node;
    1723import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1824import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
     25import org.openstreetmap.josm.data.osm.Relation;
     26import org.openstreetmap.josm.data.osm.RelationMember;
     27import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
    1928import org.openstreetmap.josm.data.osm.User;
    2029import org.openstreetmap.josm.data.osm.Way;
     
    181190        Config.getPref().put(colorKey, null);
    182191    }
     192
     193    @Test
     194    void testConvertPrimitivesToString() {
     195        assertEquals(Collections.singletonList("n1"), Functions.convert_primitives_to_string(
     196                Collections.singleton(new SimplePrimitiveId(1, NODE))));
     197        assertEquals(Arrays.asList("n1", "n9223372036854775807"), Functions.convert_primitives_to_string(
     198                Arrays.asList(new SimplePrimitiveId(1, NODE), new SimplePrimitiveId(Long.MAX_VALUE, NODE))));
     199    }
     200
     201    @Test
     202    void testParentOsmPrimitives() {
     203        final Environment env = new EnvBuilder(NODE).build();
     204        final Relation relation1 = TestUtils.newRelation("", new RelationMember("", (Node) env.osm));
     205        final Relation relation2 = TestUtils.newRelation("type=something", new RelationMember("", (Node) env.osm));
     206        final Relation relation3 = TestUtils.newRelation("type=somethingelse", new RelationMember("", (Node) env.osm));
     207
     208        TestUtils.addFakeDataSet((Node) env.osm);
     209        for (Relation relation : Arrays.asList(relation1, relation2, relation3)) {
     210            ((Node) env.osm).getDataSet().addPrimitive(relation);
     211        }
     212
     213        final List<IPrimitive> allReferrers = Functions.parent_osm_primitives(env);
     214        assertAll(() -> assertEquals(3, allReferrers.size()),
     215                () -> assertTrue(allReferrers.contains(relation1)),
     216                () -> assertTrue(allReferrers.contains(relation2)),
     217                () -> assertTrue(allReferrers.contains(relation3)));
     218
     219        final List<IPrimitive> typeReferrers = Functions.parent_osm_primitives(env, "type");
     220        assertAll(() -> assertEquals(2, typeReferrers.size()),
     221                () -> assertFalse(typeReferrers.contains(relation1)),
     222                () -> assertTrue(typeReferrers.contains(relation2)),
     223                () -> assertTrue(typeReferrers.contains(relation3)));
     224
     225        final List<IPrimitive> typeSomethingReferrers = Functions.parent_osm_primitives(env, "type", "something");
     226        assertAll(() -> assertEquals(1, typeSomethingReferrers.size()),
     227                () -> assertSame(relation2, typeSomethingReferrers.get(0)));
     228
     229        assertTrue(Functions.parent_osm_primitives(env, "type2").isEmpty());
     230    }
    183231}
Note: See TracChangeset for help on using the changeset viewer.