diff options
Diffstat (limited to 'tests/codec-json.cpp')
-rw-r--r-- | tests/codec-json.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/codec-json.cpp b/tests/codec-json.cpp index 1b6c5d2..1c77f46 100644 --- a/tests/codec-json.cpp +++ b/tests/codec-json.cpp @@ -16,6 +16,10 @@ using TestArray = Array< String, 1 >; +using TestMultiArray = Array< + String, 3 +>; + using TestStruct = Struct< Member<Int32, "foo">, Member<String, "bar"> @@ -104,6 +108,27 @@ SAW_TEST("Array write"){ SAW_EXPECT(enc_val == str_v, std::string{"Array not encoded correctly. Encoded: "} + enc_val + std::string{" Expected: "} + std::string{str_v}); } +SAW_TEST("Three Dim Array write"){ + using namespace saw; + data<schema::TestMultiArray, encode::Native> native{2,1,2}; + data<schema::TestMultiArray, encode::Json> json; + + native.at(0,0,0).set("multi"); + native.at(0,0,1).set("baz"); + native.at(1,0,0).set("foo"); + native.at(1,0,1).set("bar"); + + codec<schema::TestMultiArray, encode::Json> json_codec; + + error_or<void> eov = json_codec.encode(native, json); + SAW_EXPECT(eov.is_value(), "Encoding error"); + + std::string_view str_v = "[[[\"multi\",\"baz\"]],[[\"foo\",\"bar\"]]]"; + std::string enc_val = convert_to_string(json.get_buffer()); + + SAW_EXPECT(enc_val == str_v, std::string{"Array not encoded correctly. Encoded: "} + enc_val + std::string{" Expected: "} + std::string{str_v}); +} + SAW_TEST("Struct write"){ using namespace saw; data<schema::TestStruct, encode::Native> native; |