source: josm/trunk/test/unit/org/openstreetmap/josm/tools/StringParserTest.java@ 16618

Last change on this file since 16618 was 16618, checked in by simon04, 4 years ago

see #16567 - Fix deprecations related to JUnit 5 (patch by taylor.smock)

File size: 2.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools;
3
4import static org.hamcrest.CoreMatchers.is;
5import static org.hamcrest.MatcherAssert.assertThat;
6import static org.junit.Assert.assertFalse;
7import static org.junit.Assert.assertTrue;
8
9import java.util.Optional;
10
11import org.junit.Test;
12
13import net.trajano.commons.testing.UtilityClassTestUtil;
14
15/**
16 * Unit tests of {@link StringParser} class.
17 */
18public class StringParserTest {
19
20 /**
21 * Tests that {@code Utils} satisfies utility class criteria.
22 *
23 * @throws ReflectiveOperationException if an error occurs
24 */
25 @Test
26 public void testUtilityClass() throws ReflectiveOperationException {
27 UtilityClassTestUtil.assertUtilityClassWellDefined(Utils.class);
28 }
29
30 /**
31 * Test of {@link StringParser#parse}
32 */
33 @Test
34 public void testParse() {
35 assertThat(StringParser.DEFAULT.parse(char.class, "josm"), is('j'));
36 assertThat(StringParser.DEFAULT.parse(short.class, "123"), is((short) 123));
37 assertThat(StringParser.DEFAULT.parse(int.class, "123456"), is(123456));
38 assertThat(StringParser.DEFAULT.parse(long.class, "1234567890123"), is(1234567890123L));
39 assertThat(StringParser.DEFAULT.tryParse(long.class, "123.456"), is(Optional.empty()));
40 assertThat(StringParser.DEFAULT.tryParse(long.class, "1234567890123"), is(Optional.of(1234567890123L)));
41 }
42
43 /**
44 * Tests that {@link StringParser#DEFAULT} is immutable.
45 */
46 @Test(expected = UnsupportedOperationException.class)
47 public void testDefaultImmutable() {
48 StringParser.DEFAULT.registerParser(String.class, String::valueOf);
49 }
50
51 /**
52 * Tests that {@link StringParser#StringParser(StringParser)} creates a new map.
53 */
54 @Test
55 public void testCopyConstructor() {
56 final StringParser parser = new StringParser(StringParser.DEFAULT).registerParser(boolean.class, "JOSM"::equals);
57 assertTrue(StringParser.DEFAULT.parse(boolean.class, "true"));
58 assertFalse(StringParser.DEFAULT.parse(boolean.class, "JOSM"));
59 assertFalse(parser.parse(boolean.class, "true"));
60 assertTrue(parser.parse(boolean.class, "JOSM"));
61 assertThat(parser.parse(int.class, "123"), is(123));
62 }
63}
Note: See TracBrowser for help on using the repository browser.