diff options
author | Linnea Gräf <nea@nea.moe> | 2024-11-14 02:59:11 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-11-14 02:59:11 +0100 |
commit | 5eea18ea497d4bc11466b2bd875582ba26f188f5 (patch) | |
tree | 26391b4e347a97eafed954a52cd81b14e10a8314 /gson/src/test/java | |
parent | 05937d237c2fdf793e21b36523d06902c5a0a725 (diff) | |
download | profunctor-codecs-java-5eea18ea497d4bc11466b2bd875582ba26f188f5.tar.gz profunctor-codecs-java-5eea18ea497d4bc11466b2bd875582ba26f188f5.tar.bz2 profunctor-codecs-java-5eea18ea497d4bc11466b2bd875582ba26f188f5.zip |
Add lists
Diffstat (limited to 'gson/src/test/java')
-rw-r--r-- | gson/src/test/java/moe/nea/jcp/gson/test/TestBasic.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gson/src/test/java/moe/nea/jcp/gson/test/TestBasic.java b/gson/src/test/java/moe/nea/jcp/gson/test/TestBasic.java index 58727f2..861656e 100644 --- a/gson/src/test/java/moe/nea/jcp/gson/test/TestBasic.java +++ b/gson/src/test/java/moe/nea/jcp/gson/test/TestBasic.java @@ -1,5 +1,6 @@ package moe.nea.jcp.gson.test; +import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonNull; import com.google.gson.JsonObject; @@ -10,6 +11,7 @@ import moe.nea.pcj.Codec; import moe.nea.pcj.Decode; import moe.nea.pcj.Result; import moe.nea.pcj.json.AtField; +import moe.nea.pcj.json.AtIndex; import moe.nea.pcj.json.DuplicateJsonKey; import moe.nea.pcj.json.JsonLikeError; import moe.nea.pcj.json.JsonLikeOperations; @@ -21,6 +23,7 @@ import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.stream.Collectors; public class TestBasic { @@ -55,6 +58,14 @@ public class TestBasic { throw new IllegalArgumentException("Cannot convert " + arg + " to json object"); } + static JsonArray mkJsonArray(Object... args) { + JsonArray array = new JsonArray(); + for (Object arg : args) { + array.add(mkPrim(arg)); + } + return array; + } + static JsonObject mkJsonObject(Object... args) { JsonObject obj = new JsonObject(); for (int i = 0; i < args.length; i += 2) { @@ -99,6 +110,7 @@ public class TestBasic { assertFail(decode(codec, mkJsonObject("foo", "fooValue", "bar", "test")), new AtField("bar", new UnexpectedJsonElement("number", mkPrim("test")))); } + @Test void testDuplicateKeys() { var codec = RecordJoiners.join( @@ -110,5 +122,14 @@ public class TestBasic { assertFail(codec.encode(new TestObject("", 0), GsonOperations.INSTANCE), new DuplicateJsonKey("foo")); } + + @Test + void testList() { + var codec = codecs.STRING.fieldOf("hello").codec().listOf(); + assertSuccess(decode(codec, mkJsonArray(mkJsonObject("hello", "foo"), mkJsonObject("hello", "bar"))), + List.of("foo", "bar")); + assertFail(decode(codec, mkJsonArray("foo", mkJsonObject("hello", "bar"))), + new AtIndex(0, new UnexpectedJsonElement("object", mkPrim("foo")))); + } } |