From 13a6c1fedd97249a1ae7f0e68830f6e6bee98352 Mon Sep 17 00:00:00 2001 From: Michele Vivoda Date: Sun, 26 Mar 2017 00:57:21 +0100 Subject: [PATCH] bug372 test --- boon/src/test/java/org/boon/bugs/Bug372.java | 72 ++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 boon/src/test/java/org/boon/bugs/Bug372.java diff --git a/boon/src/test/java/org/boon/bugs/Bug372.java b/boon/src/test/java/org/boon/bugs/Bug372.java new file mode 100644 index 00000000..8fd60555 --- /dev/null +++ b/boon/src/test/java/org/boon/bugs/Bug372.java @@ -0,0 +1,72 @@ +package org.boon.bugs; + +import static junit.framework.Assert.fail; + +import java.util.Map; + +import org.boon.json.JsonException; +import org.boon.json.implementation.JsonFastParser; +import org.junit.Test; + +/** + * Created by michele vivoda on 26/3/2017 + */ +public class Bug372 { + + + @Test + public void testJsonNumberError_DotZero() + { + // http://deron.meranda.us/python/comparing_json_modules/numbers#t5-3 + assertInvalidNumber(".0"); + + } + @Test + public void testJsonNumberError_ZeroDot() + { + assertInvalidNumber("0."); + + } + @Test + public void testJsonNumberError_PlusZero() + { + assertInvalidNumber("+0"); + + } + @Test + public void testJsonNumberError_034() + { + assertInvalidNumber("034"); + assertInvalidNumber("-034"); + + } + @Test + public void testJsonNumberError_Minus() + { + // a new one, for line 834 CharScanner +// if (negative) { +// num = (digitChars[ offset ] - '0'); + // gives -77 because 77 is '{' - '0' + + assertInvalidNumber("-"); + + } + + private void assertInvalidNumber(String numberLexical) + { + try + { + final String json = "{\"a\": " + numberLexical + "}"; + Map o = (Map) new JsonFastParser().parse(json); + Object jn = (Object) o.get("a"); + if (jn==null) fail("did not fail but return null"); + else fail("Did not fail, returned " + jn + " - " + jn.getClass().getName()); + } + catch(JsonException e) + { + // ok + } + + } + +}