source: josm/trunk/test/unit/org/openstreetmap/josm/io/OsmWriterTest.java@ 14015

Last change on this file since 14015 was 13559, checked in by Don-vip, 6 years ago

extract DownloadPolicy / UploadPolicy to separate classes

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3
4import static org.junit.Assert.assertArrayEquals;
5import static org.junit.Assert.assertEquals;
6
7import java.io.ByteArrayOutputStream;
8import java.io.IOException;
9import java.io.PrintWriter;
10import java.util.ArrayList;
11import java.util.Arrays;
12import java.util.Collections;
13import java.util.List;
14
15import org.junit.Test;
16import org.openstreetmap.josm.data.osm.DownloadPolicy;
17import org.openstreetmap.josm.data.osm.UploadPolicy;
18import org.openstreetmap.josm.data.osm.NodeData;
19
20/**
21 * Unit tests of {@link OsmWriter} class.
22 */
23public class OsmWriterTest {
24
25 /**
26 * Unit test of {@link OsmWriter#byIdComparator}.
27 */
28 @Test
29 public void testByIdComparator() {
30
31 final List<NodeData> ids = new ArrayList<>();
32 for (Long id : Arrays.asList(12L, Long.MIN_VALUE, 65L, -12L, 2L, 0L, -3L, -20L, Long.MAX_VALUE)) {
33 final NodeData n = new NodeData();
34 n.setId(id);
35 ids.add(n);
36 }
37
38 Collections.sort(ids, OsmWriter.byIdComparator);
39
40 final long[] longIds = ids.stream().mapToLong(NodeData::getUniqueId).toArray();
41 assertArrayEquals(new long[] {
42 -3, -12, -20, -9223372036854775808L, 0, 2, 12, 65, 9223372036854775807L
43 }, longIds);
44 }
45
46 /**
47 * Unit test of {@link OsmWriter#header(DownloadPolicy, UploadPolicy)}.
48 * @throws IOException if an I/O error occurs
49 */
50 @Test
51 public void testHeader() throws IOException {
52 doTestHeader(null, null,
53 "<osm version='0.6' generator='JOSM'>");
54 doTestHeader(DownloadPolicy.NORMAL, UploadPolicy.NORMAL,
55 "<osm version='0.6' generator='JOSM'>");
56 doTestHeader(DownloadPolicy.BLOCKED, UploadPolicy.BLOCKED,
57 "<osm version='0.6' download='never' upload='never' generator='JOSM'>");
58 }
59
60 private static void doTestHeader(DownloadPolicy download, UploadPolicy upload, String expected) throws IOException {
61 ByteArrayOutputStream baos = new ByteArrayOutputStream();
62 try (PrintWriter out = new PrintWriter(baos);
63 OsmWriter writer = OsmWriterFactory.createOsmWriter(out, true, OsmWriter.DEFAULT_API_VERSION)) {
64 writer.header(download, upload);
65 }
66 assertEquals("<?xml version='1.0' encoding='UTF-8'?>" + expected,
67 baos.toString("UTF-8").replaceAll("\r", "").replaceAll("\n", ""));
68 }
69}
Note: See TracBrowser for help on using the repository browser.