diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-02-14 11:06:11 +0100 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-02-14 11:06:11 +0100 |
commit | d6380ea2911800882e1470e4ce1172bbeabf5dd2 (patch) | |
tree | a45e451d9f8c2e676a4f44e7f6e822e50893fb55 /modules/codec-json/tests | |
parent | d1d40903a582099762db04feeec451d7f0a617a8 (diff) |
codec-json: Prettified tuple encoding
Diffstat (limited to 'modules/codec-json/tests')
-rw-r--r-- | modules/codec-json/tests/codec-json.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/modules/codec-json/tests/codec-json.cpp b/modules/codec-json/tests/codec-json.cpp index 375d543..723e78c 100644 --- a/modules/codec-json/tests/codec-json.cpp +++ b/modules/codec-json/tests/codec-json.cpp @@ -352,4 +352,36 @@ SAW_TEST("Int64 read"){ typename native_data_type<schema::Int64>::type dec_val = -453; SAW_EXPECT( dec_val == native_int.get(), std::string{"Value is not being encoded correctly. Encoded: "} + std::to_string(static_cast<int>(native_int.get()))); } + +SAW_TEST("Tuple Pretty Encode and Decode"){ + using namespace saw; + data<schema::TestTuple, encode::Native> native_tup; + data<schema::TestTuple, encode::Json> json_tup; + + auto& nat_zero = native_tup.template get<0>(); + auto& nat_one = native_tup.template get<1>(); + + nat_zero.set("bar"); + nat_one.set(34); + + codec_config<encode::Json> json_config; + json_config.pretty = true; + codec<schema::TestTuple, encode::Json> json_codec{json_config}; + + error_or<void> eov = json_codec.encode(native_tup, json_tup); + SAW_EXPECT(eov.is_value(), "Encoding error"); + + std::string_view str_v = "[\r\n\t\"bar\",\r\n\t34\r\n]"; + std::string enc_val = convert_to_string(json_tup.get_buffer()); + + SAW_EXPECT(enc_val == str_v, std::string{"Tuple not encoded correctly. Encoded: "} + enc_val + std::string{" Expected: "} + std::string{str_v}); + native_tup = {}; + + eov = json_codec.decode(json_tup, native_tup); + SAW_EXPECT(eov.is_value(), "Decoding error"); + + SAW_EXPECT(native_tup.template get<0>() == "bar", "Invalid Value 0"); + SAW_EXPECT(native_tup.template get<1>().get() == 34, "Invalid Value 1"); + +} } |