diff options
Diffstat (limited to 'gson/src/test/java/com/google/gson/JsonStreamParserTest.java')
-rw-r--r-- | gson/src/test/java/com/google/gson/JsonStreamParserTest.java | 74 |
1 files changed, 65 insertions, 9 deletions
diff --git a/gson/src/test/java/com/google/gson/JsonStreamParserTest.java b/gson/src/test/java/com/google/gson/JsonStreamParserTest.java index 1b40b58b..402b98b4 100644 --- a/gson/src/test/java/com/google/gson/JsonStreamParserTest.java +++ b/gson/src/test/java/com/google/gson/JsonStreamParserTest.java @@ -15,24 +15,30 @@ */ package com.google.gson; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import java.io.EOFException; import java.util.NoSuchElementException; +import org.junit.Before; +import org.junit.Test; /** * Unit tests for {@link JsonStreamParser} - * + * * @author Inderjeet Singh */ -public class JsonStreamParserTest extends TestCase { +public class JsonStreamParserTest { private JsonStreamParser parser; - - @Override - protected void setUp() throws Exception { - super.setUp(); + + @Before + public void setUp() throws Exception { parser = new JsonStreamParser("'one' 'two'"); } + @Test public void testParseTwoStrings() { String actualOne = parser.next().getAsString(); assertEquals("one", actualOne); @@ -40,6 +46,7 @@ public class JsonStreamParserTest extends TestCase { assertEquals("two", actualTwo); } + @Test public void testIterator() { assertTrue(parser.hasNext()); assertEquals("one", parser.next().getAsString()); @@ -48,20 +55,22 @@ public class JsonStreamParserTest extends TestCase { assertFalse(parser.hasNext()); } + @Test public void testNoSideEffectForHasNext() throws Exception { assertTrue(parser.hasNext()); assertTrue(parser.hasNext()); assertTrue(parser.hasNext()); assertEquals("one", parser.next().getAsString()); - + assertTrue(parser.hasNext()); assertTrue(parser.hasNext()); assertEquals("two", parser.next().getAsString()); - + assertFalse(parser.hasNext()); assertFalse(parser.hasNext()); } + @Test public void testCallingNextBeyondAvailableInput() { parser.next(); parser.next(); @@ -71,4 +80,51 @@ public class JsonStreamParserTest extends TestCase { } catch (NoSuchElementException expected) { } } + + @Test + public void testEmptyInput() { + JsonStreamParser parser = new JsonStreamParser(""); + try { + parser.next(); + fail(); + } catch (JsonIOException e) { + assertTrue(e.getCause() instanceof EOFException); + } + + parser = new JsonStreamParser(""); + try { + parser.hasNext(); + fail(); + } catch (JsonIOException e) { + assertTrue(e.getCause() instanceof EOFException); + } + } + + @Test + public void testIncompleteInput() { + JsonStreamParser parser = new JsonStreamParser("["); + assertTrue(parser.hasNext()); + try { + parser.next(); + fail(); + } catch (JsonSyntaxException e) { + } + } + + @Test + public void testMalformedInput() { + JsonStreamParser parser = new JsonStreamParser(":"); + try { + parser.hasNext(); + fail(); + } catch (JsonSyntaxException e) { + } + + parser = new JsonStreamParser(":"); + try { + parser.next(); + fail(); + } catch (JsonSyntaxException e) { + } + } } |