source: josm/trunk/test/unit/org/openstreetmap/josm/data/imagery/ImageryInfoTest.java@ 10221

Last change on this file since 10221 was 10221, checked in by Don-vip, 8 years ago

cleanup unit tests

File size: 3.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.imagery;
3
4import static org.junit.Assert.assertEquals;
5
6import java.util.Arrays;
7import java.util.Collections;
8import java.util.HashSet;
9import java.util.Map;
10import java.util.Set;
11
12import org.junit.BeforeClass;
13import org.junit.Test;
14import org.openstreetmap.josm.JOSMFixture;
15import org.openstreetmap.josm.data.Preferences;
16import org.openstreetmap.josm.tools.MultiMap;
17
18/**
19 *
20 * Unit tests for class {@link ImageryInfo}.
21 *
22 */
23public class ImageryInfoTest {
24
25 /**
26 * Setup tests
27 */
28 @BeforeClass
29 public static void setUp() {
30 JOSMFixture.createUnitTestFixture().init();
31 }
32
33 /**
34 * Test if extended URL is returned properly
35 */
36 @Test
37 public void testGetExtendedUrl() {
38 ImageryInfo testImageryTMS = new ImageryInfo("test imagery", "http://localhost", "tms", null, null);
39 testImageryTMS.setDefaultMinZoom(16);
40 testImageryTMS.setDefaultMaxZoom(23);
41 assertEquals("tms[16,23]:http://localhost", testImageryTMS.getExtendedUrl());
42 }
43
44 /**
45 * Tests the {@linkplain Preferences#serializeStruct(Object, Class) serialization} of {@link ImageryInfo.ImageryPreferenceEntry}
46 */
47 @Test
48 public void testSerializeStruct() {
49 final ImageryInfo.ImageryPreferenceEntry info = new ImageryInfo.ImageryPreferenceEntry();
50 info.noTileHeaders = new MultiMap<>();
51 info.noTileHeaders.put("ETag", "foo");
52 info.noTileHeaders.put("ETag", "bar");
53 final Map<String, String> map = Preferences.serializeStruct(info, ImageryInfo.ImageryPreferenceEntry.class);
54 assertEquals("{noTileHeaders={\"ETag\":[\"foo\",\"bar\"]}}", map.toString());
55 }
56
57 /**
58 * Tests the {@linkplain Preferences#deserializeStruct(Map, Class)} deserialization} of {@link ImageryInfo.ImageryPreferenceEntry}
59 */
60 @Test
61 public void testDeserializeStruct() {
62 final ImageryInfo.ImageryPreferenceEntry info = Preferences.deserializeStruct(
63 Collections.singletonMap("noTileHeaders", "{\"ETag\":[\"foo\",\"bar\"]}"), ImageryInfo.ImageryPreferenceEntry.class);
64 MultiMap<String, String> expect = new MultiMap<>();
65 expect.put("ETag", "foo");
66 expect.put("ETag", "bar");
67 assertEquals(info.noTileHeaders, expect);
68 final Set<String> eTag = info.noTileHeaders.get("ETag");
69 assertEquals(eTag, new HashSet<>(Arrays.asList("foo", "bar")));
70 }
71
72 /**
73 * Tests the {@linkplain Preferences#deserializeStruct(Map, Class)} deserialization} of legacy {@link ImageryInfo.ImageryPreferenceEntry}
74 */
75 @Test
76 public void testDeserializeStructTicket12474() {
77 final ImageryInfo.ImageryPreferenceEntry info = Preferences.deserializeStruct(
78 Collections.singletonMap("noTileHeaders", "{\"ETag\":\"foo-and-bar\"}"), ImageryInfo.ImageryPreferenceEntry.class);
79 final Set<String> eTag = info.noTileHeaders.get("ETag");
80 assertEquals(eTag, Collections.singleton("foo-and-bar"));
81 }
82}
Note: See TracBrowser for help on using the repository browser.