1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
#include <forstio/test/suite.h>
#include <forstio/codec/json/json.h>
#include <iostream>
namespace {
SAW_TEST("Int32 write"){
using namespace saw;
data<schema::Int32, encode::Native> native_int;
data<schema::Int32, encode::Json> json_int;
native_int.set(44123);
codec<schema::Int32, encode::Json> json_codec;
error_or<void> 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<schema::String, encode::Native> nat_str;
data<schema::String, encode::Json> json_str;
nat_str.set("foo");
codec<schema::String, encode::Json> json_codec;
error_or<void> 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<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<schema::TestTuple, encode::Json> json_codec;
error_or<void> 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});
}
}
|