Ticket #13206: patch-java8-replace-function.patch

File patch-java8-replace-function.patch, 23.9 KB (added by michael2402, 10 years ago)
  • src/org/openstreetmap/josm/data/validation/tests/Lanes.java

    diff --git a/src/org/openstreetmap/josm/data/validation/tests/Lanes.java b/src/org/openstreetmap/josm/data/validation/tests/Lanes.java
    index 976fac9..ed3ab5b 100644
    a b package org.openstreetmap.josm.data.validation.tests;  
    33
    44import static org.openstreetmap.josm.tools.I18n.tr;
    55
    6 import java.util.ArrayList;
    76import java.util.Arrays;
    8 import java.util.Collection;
    9 import java.util.HashSet;
     7import java.util.List;
    108import java.util.Set;
    11 import java.util.regex.Pattern;
     9import java.util.stream.Collectors;
    1210
    1311import org.openstreetmap.josm.Main;
    1412import org.openstreetmap.josm.data.osm.OsmPrimitive;
    1513import org.openstreetmap.josm.data.validation.Severity;
    1614import org.openstreetmap.josm.data.validation.Test;
    1715import org.openstreetmap.josm.data.validation.TestError;
    18 import org.openstreetmap.josm.tools.Predicates;
    1916import org.openstreetmap.josm.tools.Utils;
    20 import org.openstreetmap.josm.tools.Utils.Function;
    2117
    2218/**
    2319 * Test that validates {@code lane:} tags.
    public class Lanes extends Test.TagTest {  
    4440    }
    4541
    4642    protected void checkNumberOfLanesByKey(final OsmPrimitive p, String lanesKey, String message) {
    47         final Collection<String> keysForPattern = new ArrayList<>(Utils.filter(p.keySet(),
    48                 Predicates.stringContainsPattern(Pattern.compile(':' + lanesKey + '$'))));
    49         keysForPattern.removeAll(Arrays.asList(BLACKLIST));
    50         if (keysForPattern.isEmpty()) {
    51             // nothing to check
    52             return;
    53         }
    54         final Set<Integer> lanesCount = new HashSet<>(Utils.transform(keysForPattern,
    55                 (Function<String, Integer>) key -> getLanesCount(p.get(key))));
     43        List<String> blacklist = Arrays.asList(BLACKLIST);
     44        final Set<Integer> lanesCount =
     45                p.keySet().stream()
     46                .filter(x -> x.endsWith(":" + lanesKey))
     47                .filter(x -> !blacklist.contains(x))
     48                .map(key -> getLanesCount(p.get(key)))
     49                .collect(Collectors.toSet());
     50
    5651        if (lanesCount.size() > 1) {
    5752            // if not all numbers are the same
    5853            errors.add(new TestError(this, Severity.WARNING, message, 3100, p));
  • src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java

    diff --git a/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java b/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
    index 8c93790..28c3fa6 100644
    a b import java.util.HashMap;  
    1111import java.util.LinkedList;
    1212import java.util.List;
    1313import java.util.Map;
     14import java.util.stream.Collectors;
    1415
    1516import org.openstreetmap.josm.command.Command;
    1617import org.openstreetmap.josm.command.DeleteCommand;
    import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;  
    2829import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
    2930import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
    3031import org.openstreetmap.josm.tools.Utils;
    31 import org.openstreetmap.josm.tools.Utils.Function;
    3232
    3333/**
    3434 * Check for wrong relations.
    public class RelationChecker extends Test {  
    255255            }
    256256
    257257            // convert in localization friendly way to string of accepted types
    258             String typesStr = Utils.join("/", Utils.transform(types, (Function<TaggingPresetType, Object>) x -> tr(x.getName())));
     258            String typesStr = types.stream().map(x -> tr(x.getName())).collect(Collectors.joining("/"));
    259259
    260260            errors.add(new TestError(this, Severity.WARNING, ROLE_VERIF_PROBLEM_MSG,
    261261                    tr(s, member.getType(), typesStr, rolePreset.name), s, WRONG_TYPE,
    public class RelationChecker extends Test {  
    292292        // verify unwanted members
    293293        for (String key : map.keySet()) {
    294294            if (!allroles.containsKey(key)) {
    295                 String templates = Utils.join("/", Utils.transform(allroles.keySet(), (Function<String, Object>) x -> tr(x)));
     295                String templates = allroles.keySet().stream().map(x -> tr(x)).collect(Collectors.joining("/"));
    296296
    297297                if (!key.isEmpty()) {
    298298                    String s = marktr("Role {0} unknown in templates {1}");
  • src/org/openstreetmap/josm/gui/DefaultNameFormatter.java

    diff --git a/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java b/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
    index 5b9e3ce..bef4acd 100644
    a b import java.util.List;  
    1818import java.util.Locale;
    1919import java.util.Map;
    2020import java.util.Set;
     21import java.util.stream.Collectors;
    2122
    2223import org.openstreetmap.josm.Main;
    2324import org.openstreetmap.josm.data.coor.CoordinateFormat;
    import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetNameTemplateList;  
    4142import org.openstreetmap.josm.tools.AlphanumComparator;
    4243import org.openstreetmap.josm.tools.I18n;
    4344import org.openstreetmap.josm.tools.Utils;
    44 import org.openstreetmap.josm.tools.Utils.Function;
    4545
    4646/**
    4747 * This is the default implementation of a {@link NameFormatter} for names of {@link OsmPrimitive}s
    public class DefaultNameFormatter implements NameFormatter, HistoryNameFormatter  
    630630     * @return HTML unordered list
    631631     */
    632632    public String formatAsHtmlUnorderedList(Collection<? extends OsmPrimitive> primitives, int maxElements) {
    633         final Collection<String> displayNames = Utils.transform(primitives,
    634                 (Function<OsmPrimitive, String>) x -> x.getDisplayName(this));
     633        Collection<String> displayNames = primitives.stream().map(x -> x.getDisplayName(this)).collect(Collectors.toList());
    635634        return Utils.joinAsHtmlUnorderedList(Utils.limit(displayNames, maxElements, "..."));
    636635    }
    637636
  • src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java

    diff --git a/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java b/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
    index 58704b1..3ba2d10 100644
    a b import java.util.Collection;  
    2121import java.util.LinkedList;
    2222import java.util.List;
    2323import java.util.Set;
     24import java.util.stream.Collectors;
    2425
    2526import javax.swing.AbstractAction;
    2627import javax.swing.Action;
    import org.openstreetmap.josm.gui.help.HelpUtil;  
    4748import org.openstreetmap.josm.gui.util.GuiHelper;
    4849import org.openstreetmap.josm.tools.CheckParameterUtil;
    4950import org.openstreetmap.josm.tools.ImageProvider;
     51import org.openstreetmap.josm.tools.StreamUtils;
    5052import org.openstreetmap.josm.tools.UserCancelException;
    51 import org.openstreetmap.josm.tools.Utils;
    52 import org.openstreetmap.josm.tools.Utils.Function;
    5353import org.openstreetmap.josm.tools.WindowGeometry;
    5454
    5555/**
    public class CombinePrimitiveResolverDialog extends JDialog {  
    568568    protected static void informAboutTagConflicts(
    569569            final Collection<? extends OsmPrimitive> primitives,
    570570            final TagCollection normalizedTags) throws UserCancelException {
    571         String conflicts = Utils.joinAsHtmlUnorderedList(Utils.transform(normalizedTags.getKeysWithMultipleValues(),
    572                 (Function<String, String>) key -> tr("{0} ({1})", key, Utils.join(tr(", "), Utils.transform(normalizedTags.getValues(key),
    573                         (Function<String, String>) x -> x == null || x.isEmpty() ? tr("<i>missing</i>") : x)))));
     571        String conflicts = normalizedTags.getKeysWithMultipleValues().stream().map(
     572                key -> getKeyDescription(key, normalizedTags)).collect(StreamUtils.toHtmlList());
    574573        String msg = /* for correct i18n of plural forms - see #9110 */ trn("You are about to combine {0} objects, "
    575574                + "but the following tags are used conflictingly:<br/>{1}"
    576575                + "If these objects are combined, the resulting object may have unwanted tags.<br/>"
    public class CombinePrimitiveResolverDialog extends JDialog {  
    593592            throw new UserCancelException();
    594593        }
    595594    }
     595
     596    private static String getKeyDescription(String key, TagCollection normalizedTags) {
     597        String values = normalizedTags.getValues(key)
     598                .stream()
     599                .map(x -> ((x == null || x.isEmpty()) ? tr("<i>missing</i>") : x))
     600                .collect(Collectors.joining(tr(", ")));
     601        return tr("{0} ({1})", key, values);
     602    }
    596603}
  • src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java b/src/org/openstreetmap/josm/gui/dialogs/OsmIdSelectionDialog.java
    index 712ce01..5f9f246 100644
    a b import java.awt.event.WindowListener;  
    1212import java.util.Arrays;
    1313import java.util.Collection;
    1414import java.util.Collections;
    15 import java.util.EnumSet;
    1615import java.util.LinkedList;
    1716import java.util.List;
    1817import java.util.Set;
     18import java.util.stream.Collectors;
    1919
    2020import javax.swing.BorderFactory;
    2121import javax.swing.GroupLayout;
    import org.openstreetmap.josm.gui.widgets.JosmTextField;  
    3838import org.openstreetmap.josm.gui.widgets.OsmIdTextField;
    3939import org.openstreetmap.josm.gui.widgets.OsmPrimitiveTypesComboBox;
    4040import org.openstreetmap.josm.tools.Utils;
    41 import org.openstreetmap.josm.tools.Utils.Function;
    4241
    4342/**
    4443 * Dialog prompt to user to let him choose OSM primitives by specifying their type and IDs.
    public class OsmIdSelectionDialog extends ExtendedDialog implements WindowListen  
    203202        if (buf.length() > Main.pref.getInteger("downloadprimitive.max-autopaste-length", 2000)) return;
    204203        final List<SimplePrimitiveId> ids = SimplePrimitiveId.fuzzyParse(buf);
    205204        if (!ids.isEmpty()) {
    206             final String parsedText = Utils.join(", ", Utils.transform(ids,
    207                     (Function<SimplePrimitiveId, String>) x -> x.getType().getAPIName().charAt(0) + String.valueOf(x.getUniqueId())));
     205            final String parsedText = ids.stream().map(x -> x.getType().getAPIName().charAt(0) + String.valueOf(x.getUniqueId()))
     206                    .collect(Collectors.joining(", "));
    208207            tfId.tryToPasteFrom(parsedText);
    209             final Set<OsmPrimitiveType> types = EnumSet.copyOf(Utils.transform(ids,
    210                     (Function<SimplePrimitiveId, OsmPrimitiveType>) x -> x.getType()));
     208            final Set<OsmPrimitiveType> types = ids.stream().map(x -> x.getType()).collect(Collectors.toSet());
    211209            if (types.size() == 1) {
    212210                // select corresponding type
    213211                cbType.setSelectedItem(types.iterator().next());
  • src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java

    diff --git a/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java b/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetContentPanel.java
    index 7b721e4..658678d 100644
    a b import java.util.Collection;  
    1616import java.util.HashSet;
    1717import java.util.List;
    1818import java.util.Set;
     19import java.util.stream.Collectors;
    1920
    2021import javax.swing.AbstractAction;
    2122import javax.swing.BorderFactory;
    import org.openstreetmap.josm.gui.util.GuiHelper;  
    5253import org.openstreetmap.josm.gui.widgets.JMultilineLabel;
    5354import org.openstreetmap.josm.gui.widgets.PopupMenuLauncher;
    5455import org.openstreetmap.josm.tools.ImageProvider;
    55 import org.openstreetmap.josm.tools.Utils;
    56 import org.openstreetmap.josm.tools.Utils.Function;
    5756import org.openstreetmap.josm.tools.bugreport.BugReportExceptionHandler;
    5857
    5958/**
    public class ChangesetContentPanel extends JPanel implements PropertyChangeListe  
    300299
    301300        @Override
    302301        public void actionPerformed(ActionEvent arg0) {
    303             final List<PrimitiveId> primitiveIds = new ArrayList<>(Utils.transform(
    304                     model.getSelectedPrimitives(), (Function<HistoryOsmPrimitive, PrimitiveId>) x -> x.getPrimitiveId()));
     302            final List<PrimitiveId> primitiveIds = model.getSelectedPrimitives().stream().map(x -> x.getPrimitiveId())
     303                    .collect(Collectors.toList());
    305304            Main.worker.submit(new DownloadPrimitivesWithReferrersTask(false, primitiveIds, true, true, null, null));
    306305        }
    307306
  • src/org/openstreetmap/josm/io/ChangesetQuery.java

    diff --git a/src/org/openstreetmap/josm/io/ChangesetQuery.java b/src/org/openstreetmap/josm/io/ChangesetQuery.java
    index 687c9e7..9c6228d 100644
    a b import static org.openstreetmap.josm.tools.I18n.tr;  
    66import java.text.DateFormat;
    77import java.text.MessageFormat;
    88import java.text.ParseException;
    9 import java.util.Arrays;
    109import java.util.Collection;
    1110import java.util.Collections;
    1211import java.util.Date;
    1312import java.util.HashMap;
    14 import java.util.HashSet;
    1513import java.util.Map;
    1614import java.util.Map.Entry;
     15import java.util.stream.Collectors;
     16import java.util.stream.Stream;
    1717
    1818import org.openstreetmap.josm.Main;
    1919import org.openstreetmap.josm.data.Bounds;
    2020import org.openstreetmap.josm.data.coor.LatLon;
    2121import org.openstreetmap.josm.tools.CheckParameterUtil;
    2222import org.openstreetmap.josm.tools.Utils;
    23 import org.openstreetmap.josm.tools.Utils.Function;
    2423import org.openstreetmap.josm.tools.date.DateUtils;
    2524
    2625public class ChangesetQuery {
    public class ChangesetQuery {  
    404403        }
    405404
    406405        protected Collection<Long> parseLongs(String value) {
    407             return value == null || value.isEmpty()
    408                     ? Collections.<Long>emptySet() :
    409                     new HashSet<>(Utils.transform(Arrays.asList(value.split(",")), (Function<String, Long>) x -> Long.valueOf(x)));
     406            if (value == null || value.isEmpty()) {
     407                return Collections.<Long>emptySet();
     408            } else {
     409                return Stream.of(value.split(",")).map(Long::valueOf).collect(Collectors.toSet());
     410            }
    410411        }
    411412
    412413        protected ChangesetQuery createFromMap(Map<String, String> queryParams) throws ChangesetQueryUrlException {
  • src/org/openstreetmap/josm/io/imagery/WMSImagery.java

    diff --git a/src/org/openstreetmap/josm/io/imagery/WMSImagery.java b/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
    index 4f9c6a4..4cae411 100644
    a b public class WMSImagery {  
    179179    public String buildGetMapUrl(Collection<LayerDetails> selectedLayers, String format) {
    180180        return buildRootUrl() + "FORMAT=" + format + (imageFormatHasTransparency(format) ? "&TRANSPARENT=TRUE" : "")
    181181                + "&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS="
    182                 + Utils.join(",", Utils.transform(selectedLayers, x -> x.ident))
     182                + selectedLayers.stream().map(x -> x.ident).collect(Collectors.joining(","))
    183183                + "&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}";
    184184    }
    185185
  • src/org/openstreetmap/josm/tools/StreamUtils.java

    diff --git a/src/org/openstreetmap/josm/tools/StreamUtils.java b/src/org/openstreetmap/josm/tools/StreamUtils.java
    index 8f39c48..42a7997 100644
    a b  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.tools;
    33
     4import java.util.EnumSet;
    45import java.util.Iterator;
     6import java.util.Set;
    57import java.util.Spliterator;
    68import java.util.Spliterators;
     9import java.util.function.BiConsumer;
     10import java.util.function.BinaryOperator;
     11import java.util.function.Function;
     12import java.util.function.Supplier;
     13import java.util.stream.Collector;
    714import java.util.stream.Stream;
    815import java.util.stream.StreamSupport;
    916
    import java.util.stream.StreamSupport;  
    1421 */
    1522public final class StreamUtils {
    1623
     24    private static final class HtmlListCollector implements Collector<String, StringBuilder, String> {
     25        @Override
     26        public Supplier<StringBuilder> supplier() {
     27            return StringBuilder::new;
     28        }
     29
     30        @Override
     31        public BiConsumer<StringBuilder, String> accumulator() {
     32            return (sb, item) -> sb.append("<li>").append(item).append("</li>");
     33        }
     34
     35        @Override
     36        public BinaryOperator<StringBuilder> combiner() {
     37            return StringBuilder::append;
     38        }
     39
     40        @Override
     41        public Function<StringBuilder, String> finisher() {
     42            return sb -> "<ul>" + sb.toString() + "</ul>";
     43        }
     44
     45        @Override
     46        public Set<Characteristics> characteristics() {
     47            return EnumSet.of(Characteristics.CONCURRENT);
     48        }
     49    }
     50
    1751    /**
    1852     * Utility class
    1953     */
    public final class StreamUtils {  
    2963        Spliterator<T> spliterator = Spliterators.spliteratorUnknownSize(iterator, Spliterator.ORDERED);
    3064        return StreamSupport.stream(spliterator, false);
    3165    }
     66
     67    /**
     68     * Creates a new Collector that collects the items and returns them as HTML unordered list.
     69     * @return The collector.
     70     */
     71    public static Collector<String, ?, String> toHtmlList() {
     72        return new HtmlListCollector();
     73    }
    3274}
  • src/org/openstreetmap/josm/tools/Utils.java

    diff --git a/src/org/openstreetmap/josm/tools/Utils.java b/src/org/openstreetmap/josm/tools/Utils.java
    index cd25da4..1fd0efd 100644
    a b public final class Utils {  
    326326     * @return An unordered HTML list
    327327     */
    328328    public static String joinAsHtmlUnorderedList(Iterable<?> values) {
    329         StringBuilder sb = new StringBuilder(1024);
    330         sb.append("<ul>");
    331         for (Object i : values) {
    332             sb.append("<li>").append(i).append("</li>");
    333         }
    334         sb.append("</ul>");
    335         return sb.toString();
     329        return StreamUtils.toStream(values.iterator()).map(x -> x.toString()).collect(StreamUtils.toHtmlList());
    336330    }
    337331
    338332    /**
  • test/unit/org/openstreetmap/josm/gui/tagging/presets/PresetClassificationsTest.java

    diff --git a/test/unit/org/openstreetmap/josm/gui/tagging/presets/PresetClassificationsTest.java b/test/unit/org/openstreetmap/josm/gui/tagging/presets/PresetClassificationsTest.java
    index 72959f0..9a4625c 100644
    a b import java.util.Collection;  
    99import java.util.Collections;
    1010import java.util.EnumSet;
    1111import java.util.List;
     12import java.util.stream.Collectors;
    1213
    1314import org.junit.BeforeClass;
    1415import org.junit.Test;
    import org.openstreetmap.josm.data.osm.OsmUtils;  
    1920import org.openstreetmap.josm.data.osm.Way;
    2021import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSelector.PresetClassification;
    2122import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetSelector.PresetClassifications;
    22 import org.openstreetmap.josm.tools.Utils;
    2323import org.xml.sax.SAXException;
    2424
    2525/**
    public class PresetClassificationsTest {  
    4747    }
    4848
    4949    private List<String> getMatchingPresetNames(String searchText, OsmPrimitive w) {
    50         return Utils.transform(getMatchingPresets(searchText, w), new Utils.Function<PresetClassification, String>() {
    51             @Override
    52             public String apply(PresetClassification x) {
    53                 return x.preset.name;
    54             }
    55         });
     50        return getMatchingPresets(searchText, w).stream().map(x -> x.preset.name).collect(Collectors.toList());
    5651    }
    5752
    5853    /**
  • test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReaderTest.java

    diff --git a/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReaderTest.java b/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReaderTest.java
    index 2162b62..9b3a163 100644
    a b package org.openstreetmap.josm.gui.tagging.presets;  
    44import static org.CustomMatchers.hasSize;
    55import static org.junit.Assert.assertEquals;
    66import static org.junit.Assert.assertThat;
     7import static org.junit.Assert.assertTrue;
    78
    89import java.io.IOException;
    910import java.util.Collection;
    1011import java.util.List;
     12import java.util.stream.Collectors;
    1113
    1214import org.junit.Assert;
    1315import org.junit.BeforeClass;
    import org.openstreetmap.josm.JOSMFixture;  
    1618import org.openstreetmap.josm.TestUtils;
    1719import org.openstreetmap.josm.gui.tagging.presets.items.Check;
    1820import org.openstreetmap.josm.gui.tagging.presets.items.Key;
    19 import org.openstreetmap.josm.tools.Utils;
    2021import org.xml.sax.SAXException;
    2122
    2223/**
    public class TaggingPresetReaderTest {  
    5859        final Collection<TaggingPreset> presets = TaggingPresetReader.readAll(TestUtils.getTestDataRoot() + "preset_chunk.xml", true);
    5960        assertThat(presets, hasSize(1));
    6061        final TaggingPreset abc = presets.iterator().next();
    61         final List<String> keys = Utils.transform(abc.data, new Utils.Function<TaggingPresetItem, String>() {
    62             @Override
    63             public String apply(TaggingPresetItem x) {
    64                 return x instanceof Key ? ((Key) x).key : null;
    65             }
    66         });
     62        assertTrue(abc.data.stream().allMatch(Key.class::isInstance));
     63        final List<String> keys = abc.data.stream().map(x -> ((Key) x).key).collect(Collectors.toList());
    6764        assertEquals("[A1, A2, A3, B1, B2, B3, C1, C2, C3]", keys.toString());
    6865    }
    6966
  • test/unit/org/openstreetmap/josm/io/OsmWriterTest.java

    diff --git a/test/unit/org/openstreetmap/josm/io/OsmWriterTest.java b/test/unit/org/openstreetmap/josm/io/OsmWriterTest.java
    index 54112ac..996e6c2 100644
    a b  
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.io;
    33
    4 import static org.junit.Assert.assertEquals;
     4import static org.junit.Assert.assertArrayEquals;
    55
    66import java.util.ArrayList;
    77import java.util.Arrays;
    import java.util.List;  
    1010
    1111import org.junit.Test;
    1212import org.openstreetmap.josm.data.osm.NodeData;
    13 import org.openstreetmap.josm.tools.Utils;
    1413
    1514/**
    1615 * Unit tests of {@link OsmWriter} class.
    public class OsmWriterTest {  
    3231
    3332        Collections.sort(ids, OsmWriter.byIdComparator);
    3433
    35         final String idsAsString = Utils.transform(ids, new Utils.Function<NodeData, Object>() {
    36             @Override
    37             public Object apply(NodeData x) {
    38                 return x.getUniqueId();
    39             }
    40         }).toString();
    41 
    42         assertEquals("[-3, -12, -20, -9223372036854775808, 0, 2, 12, 65, 9223372036854775807]", idsAsString);
     34        final long[] longIds = ids.stream().mapToLong(x -> x.getUniqueId()).toArray();
     35        assertArrayEquals(new long[] {
     36                -3, -12, -20, -9223372036854775808l, 0, 2, 12, 65, 9223372036854775807l
     37        }, longIds);
    4338    }
    4439}
  • test/unit/org/openstreetmap/josm/tools/UtilsTest.java

    diff --git a/test/unit/org/openstreetmap/josm/tools/UtilsTest.java b/test/unit/org/openstreetmap/josm/tools/UtilsTest.java
    index cbe2b8b..2025389 100644
    a b import java.io.BufferedReader;  
    77import java.io.IOException;
    88import java.net.URL;
    99import java.util.Arrays;
     10import java.util.Collections;
     11import java.util.List;
    1012import java.util.Locale;
    1113
    1214import org.junit.Assert;
    public class UtilsTest {  
    192194        Utils.getSizeString(-1, Locale.ENGLISH);
    193195    }
    194196
     197    /**
     198     * Test {@link Utils#joinAsHtmlUnorderedList(Iterable)}
     199     */
     200    @Test
     201    public void joinAsHtmlUnorderedList() {
     202        List<? extends Object> items = Arrays.asList("1", new Integer(2));
     203        assertEquals("<ul><li>1</li><li>2</li></ul>", Utils.joinAsHtmlUnorderedList(items));
     204        assertEquals("<ul></ul>",  Utils.joinAsHtmlUnorderedList(Collections.emptyList()));
     205    }
     206
    195207}