#include #include #include namespace { SAW_TEST("Int32 write"){ using namespace saw; data native_int; data json_int; native_int.set(44123); codec json_codec; error_or eov = json_codec.encode(native_int, json_int); SAW_EXPECT(eov.is_value(), "Encoding error"); /** * Currently doing this manually. Technically I should convert to std::string for tests */ std::string_view str_v = "44123"; std::string enc_val = convert_to_string(json_int.get_buffer()); SAW_EXPECT( enc_val == str_v, std::string{"Value is not being encoded correctly. Encoded: "} + enc_val ); } SAW_TEST("String write"){ using namespace saw; data nat_str; data json_str; nat_str.set("foo"); codec json_codec; error_or eov = json_codec.encode(nat_str, json_str); SAW_EXPECT(eov.is_value(), "Encoding error"); /** * Currently doing this manually. Technically I should convert to std::string for tests */ std::string_view str_view = "\"foo\""; std::string encoded_value = convert_to_string(json_str.get_buffer()); SAW_EXPECT(encoded_value == str_view, "String not encoded correctly"); } namespace schema { using namespace saw::schema; using TestTuple = Tuple< String, Int32 >; } SAW_TEST("Tuple write"){ using namespace saw; data native_tup; data 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 json_codec; error_or eov = json_codec.encode(native_tup, json_tup); SAW_EXPECT(eov.is_value(), "Encoding error"); std::string_view str_v = "[\"bar\",34]"; 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}); } }