aboutsummaryrefslogtreecommitdiff
path: root/gson/src/test/java/com/google/gson/JsonStreamParserTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'gson/src/test/java/com/google/gson/JsonStreamParserTest.java')
-rw-r--r--gson/src/test/java/com/google/gson/JsonStreamParserTest.java74
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) {
+ }
+ }
}