source: josm/trunk/test/unit/org/openstreetmap/josm/gui/tagging/TaggingPresetReaderTest.java@ 7210

Last change on this file since 7210 was 7081, checked in by Don-vip, 10 years ago

fixes for unit tests

File size: 3.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.tagging;
3
4import static org.CustomMatchers.hasSize;
5import static org.hamcrest.CoreMatchers.is;
6import static org.junit.Assert.assertThat;
7
8import java.io.IOException;
9import java.util.Collection;
10import java.util.List;
11
12import org.junit.Assert;
13import org.junit.BeforeClass;
14import org.junit.Test;
15import org.openstreetmap.josm.JOSMFixture;
16import org.openstreetmap.josm.TestUtils;
17import org.openstreetmap.josm.tools.Utils;
18import org.xml.sax.SAXException;
19
20/**
21 * Unit tests of {@link TaggingPresetReader} class.
22 */
23public class TaggingPresetReaderTest {
24
25 /**
26 * Setup test.
27 */
28 @BeforeClass
29 public static void setUp() {
30 JOSMFixture.createUnitTestFixture().init();
31 }
32
33 /**
34 * Gets path to test data directory for given ticketid.
35 * @param ticketid
36 * @return
37 */
38 protected static String getRegressionDataDir(int ticketid) {
39 return TestUtils.getTestDataRoot() + "/regress/" + ticketid;
40 }
41
42 /**
43 * Gets path to given file in test data directory for given ticketid.
44 * @param ticketid
45 * @param filename
46 * @return
47 */
48 protected static String getRegressionDataFile(int ticketid, String filename) {
49 return getRegressionDataDir(ticketid) + '/' + filename;
50 }
51
52 /**
53 * #8954 - last checkbox in the preset is not added
54 */
55 @Test
56 public void test8954() throws SAXException, IOException {
57 String presetfile = getRegressionDataFile(8954, "preset.xml");
58 final Collection<TaggingPreset> presets = TaggingPresetReader.readAll(presetfile, false);
59 Assert.assertEquals("Number of preset items", 1, presets.size());
60 final TaggingPreset preset = presets.iterator().next();
61 Assert.assertEquals("Number of entries", 1, preset.data.size());
62 final TaggingPresetItem item = preset.data.get(0);
63 Assert.assertTrue("Entry is not checkbox", item instanceof TaggingPresetItems.Check);
64 }
65
66 @Test
67 public void testNestedChunks() throws Exception {
68 final Collection<TaggingPreset> presets = TaggingPresetReader.readAll(TestUtils.getTestDataRoot() + "preset_chunk.xml", true);
69 assertThat(presets, hasSize(1));
70 final TaggingPreset abc = presets.iterator().next();
71 final List<String> keys = Utils.transform(abc.data, new Utils.Function<TaggingPresetItem, String>() {
72 @Override
73 public String apply(TaggingPresetItem x) {
74 return ((TaggingPresetItems.Key) x).key;
75 }
76 });
77 assertThat(keys.toString(), is("[A1, A2, A3, B1, B2, B3, C1, C2, C3]"));
78 }
79
80 /**
81 * Validate internal presets
82 * See #9027
83 */
84 @Test
85 public void readDefaulPresets() throws SAXException, IOException {
86 String presetfile = "resource://data/defaultpresets.xml";
87 final Collection<TaggingPreset> presets = TaggingPresetReader.readAll(presetfile, true);
88 Assert.assertTrue("Default presets are empty", presets.size()>0);
89 }
90}
Note: See TracBrowser for help on using the repository browser.