diff --git a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java index 97dc2e56c..0600a7ef0 100644 --- a/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java +++ b/gson/src/test/java/com/google/gson/internal/bind/JsonTreeWriterTest.java @@ -281,4 +281,25 @@ public final class JsonTreeWriterTest { "getSerializeNulls()"); MoreAsserts.assertOverridesMethods(JsonWriter.class, JsonTreeWriter.class, ignoredMethods); } + + @Test + public void testEndArrayOnEmptyStackThrows() { + JsonTreeWriter writer = new JsonTreeWriter(); + assertThrows(IllegalStateException.class, () -> writer.endArray()); + } + + @Test + public void testEndArrayWithPendingNameThrows() throws IOException { + JsonTreeWriter writer = new JsonTreeWriter(); + writer.beginObject(); + writer.name("test"); + assertThrows(IllegalStateException.class, () -> writer.endArray()); + } + + @Test + public void testEndArrayWhenStackTopIsNotArrayThrows() throws IOException { + JsonTreeWriter writer = new JsonTreeWriter(); + writer.beginObject(); + assertThrows(IllegalStateException.class, () -> writer.endArray()); + } }