From 16d69890839849b424cf70c5bc3939626c09dbf7 Mon Sep 17 00:00:00 2001 From: Mitchell Hentges Date: Tue, 5 Apr 2016 18:17:28 +0200 Subject: [PATCH 1/2] Make map() and list() static --- README.md | 5 ++--- src/main/java/ca/fuzzlesoft/JsonParse.java | 7 +++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 91ce8b6..5d6353a 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,8 @@ _Lower is better:_ String mapString = "{\"fast\":true, \"super-neat\":true}"; String listString = "[1, 2, false]"; -JsonParse parse = new JsonParse(); -Map map = parse.map(mapString); -List list = parse.list(listString); +Map map = JsonParse.map(mapString); +List list = JsonParse.list(listString); ``` ## Getting the dependency diff --git a/src/main/java/ca/fuzzlesoft/JsonParse.java b/src/main/java/ca/fuzzlesoft/JsonParse.java index f51b65a..5665b1c 100644 --- a/src/main/java/ca/fuzzlesoft/JsonParse.java +++ b/src/main/java/ca/fuzzlesoft/JsonParse.java @@ -10,12 +10,15 @@ */ @SuppressWarnings("unchecked") //Because of reusing `currentContainer` for both maps and lists public class JsonParse { + + private JsonParse() {} + /** * Converts jsonString into a {@link Map} * @param jsonString parsed * @return the contents of the jsonString */ - public Map map(String jsonString) { + public static Map map(String jsonString) { return (Map) parse(jsonString, Type.OBJECT); } @@ -24,7 +27,7 @@ public Map map(String jsonString) { * @param jsonString parsed * @return the contents of the jsonString */ - public List list(String jsonString) { + public static List list(String jsonString) { return (List) parse(jsonString, Type.ARRAY); } From a2c737a5f0ece6a9d62731396b47ad7c5bc8db4c Mon Sep 17 00:00:00 2001 From: Mitchell Hentges Date: Tue, 5 Apr 2016 18:18:02 +0200 Subject: [PATCH 2/2] Fix tests --- .../java/ca/fuzzlesoft/JsonParseTest.java | 49 ++++++++----------- 1 file changed, 21 insertions(+), 28 deletions(-) diff --git a/src/test/java/ca/fuzzlesoft/JsonParseTest.java b/src/test/java/ca/fuzzlesoft/JsonParseTest.java index 1e6ee63..d8f4637 100644 --- a/src/test/java/ca/fuzzlesoft/JsonParseTest.java +++ b/src/test/java/ca/fuzzlesoft/JsonParseTest.java @@ -18,20 +18,13 @@ */ public class JsonParseTest { - private JsonParse jsonParse; - - @Before - public void setUp() { - jsonParse = new JsonParse(); - } - @Test public void shouldParseStrings() { String test = "{\"foo\":\"bar\"}"; Map expected = MapBuilder.init() .add("foo", "bar") .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -40,7 +33,7 @@ public void shouldParseSingleCharacterStrings() { Map expected = MapBuilder.init() .add("a", "b") .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -53,7 +46,7 @@ public void shouldParseNumbers() { .add("zurb", Double.valueOf("1E-4")) .add("boop", 6L) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -64,7 +57,7 @@ public void shouldExcludeCharactersAfterNumbers() { .add("bar", 2L) .add("baz", 3L) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -74,7 +67,7 @@ public void shouldParseBooleans() { .add("foo", true) .add("bar", false) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -83,7 +76,7 @@ public void shouldParseNulls() { Map expected = MapBuilder.init() .add("foo", null) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -92,7 +85,7 @@ public void shouldAllowSpacesAroundColons() { Map expected = MapBuilder.init() .add("foo", true) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -101,7 +94,7 @@ public void shouldAllowSpacesAndCommasInPropertyNames() { Map expected = MapBuilder.init() .add("special, foo", "isspecial") .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -110,7 +103,7 @@ public void shouldAllowSpacesInStringPropertyValues() { Map expected = MapBuilder.init() .add("specialfoo", "is, special") .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -119,7 +112,7 @@ public void shouldIgnoreSurroundWhitespace() { Map expected = MapBuilder.init() .add("foo", true) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -132,7 +125,7 @@ public void shouldAcceptABunchOfPropertiesSeperatedByWhitespace() { .add("false", false) .add("null", null) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -141,7 +134,7 @@ public void shouldParseNestedObject() { Map expected = MapBuilder.init() .add("obj", MapBuilder.init().add("swag", true).build()) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -150,14 +143,14 @@ public void shouldAllowSpecialCharactersInStrings() { Map expected = MapBuilder.init() .add("foo", "{}[]'1234") .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test public void shouldParseList() { String test = "[1, \"foo\", true]"; List list = Arrays.asList(1L, "foo", true); - Assert.assertEquals(jsonParse.list(test), list); + Assert.assertEquals(JsonParse.list(test), list); } @Test @@ -169,7 +162,7 @@ public void shouldParseNestedNests() { .add("ayy", "lmao").build() ) .build(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test @@ -179,17 +172,17 @@ public void shouldThrowExceptionIfNoObject() { String noStart = " } "; try { - jsonParse.map(noObject); + JsonParse.map(noObject); Assert.fail("Did not not throw exception when there was no containing object"); } catch (Exception ignored) {} try { - jsonParse.map(noEnd); + JsonParse.map(noEnd); Assert.fail("Did not throw exception when object didn't end"); } catch (Exception ignored) {} try { - jsonParse.map(noStart); + JsonParse.map(noStart); Assert.fail("Did not throw exception when object didn't start"); } catch (Exception ignored) {} } @@ -198,16 +191,16 @@ public void shouldThrowExceptionIfNoObject() { public void shouldAllowTabsOrNewlines() { String test = "\t\n{\t}\n\t"; Map expected = new HashMap<>(); - Assert.assertEquals(expected, jsonParse.map(test)); + Assert.assertEquals(expected, JsonParse.map(test)); } @Test public void shouldOnlyThrowJsonParseExceptionOnTooManyClosingTags() { try { - jsonParse.map("{}}"); + JsonParse.map("{}}"); } catch (JsonParseException ignored) {} try { - jsonParse.list("[]]"); + JsonParse.list("[]]"); } catch (JsonParseException ignored) {} }