diff options
author | Claudius Holeksa <mail@keldu.de> | 2023-06-15 20:45:27 +0200 |
---|---|---|
committer | Claudius Holeksa <mail@keldu.de> | 2023-06-15 20:45:27 +0200 |
commit | 777b7490470c9f1328abe8d0f83bedda8f02593d (patch) | |
tree | cd0704eeca067fa0d3ef7370c308883a98e5014d /tests/codec-json.cpp | |
parent | 4260ffa31e58129ad6822eccce8a81ab750bd8b7 (diff) |
c++, codec-json: Added multi dimensional arrays to json
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; |