|
|
@@ -19,7 +19,7 @@ public:
|
|
|
char data[] = "[ 0, 1, 2 ]";
|
|
|
using collect = std::vector<int>;
|
|
|
collect out;
|
|
|
- value_binder<collect> binder{value_binder<int>()};
|
|
|
+ value_binder<collect> binder{};
|
|
|
TS_ASSERT_THROWS_NOTHING(parse(json::binder::bind(out, binder), data, allow_all));
|
|
|
TS_ASSERT_EQUALS(out, collect({0, 1, 2}));
|
|
|
}
|
|
|
@@ -28,7 +28,7 @@ public:
|
|
|
char data[] = "[ 0, 1";
|
|
|
using collect = std::vector<int>;
|
|
|
collect out;
|
|
|
- value_binder<collect> binder{value_binder<int>()};
|
|
|
+ value_binder<collect> binder{};
|
|
|
TS_ASSERT_THROWS(parse(json::binder::bind(out, binder), data, allow_all),
|
|
|
json::unterminated_json_exception);
|
|
|
}
|
|
|
@@ -37,7 +37,7 @@ public:
|
|
|
char data[] = "0, 1";
|
|
|
using collect = std::vector<int>;
|
|
|
collect out;
|
|
|
- value_binder<collect> binder{value_binder<int>()};
|
|
|
+ value_binder<collect> binder{};
|
|
|
TS_ASSERT_THROWS(parse(json::binder::bind(out, binder), data, allow_all),
|
|
|
json::malformed_json_exception);
|
|
|
}
|
|
|
@@ -47,7 +47,7 @@ public:
|
|
|
char data[] = "{ \"a\" : 1 , \"b\" : 2 }";
|
|
|
using collect = std::map<std::string, int>;
|
|
|
collect out;
|
|
|
- value_binder<collect> binder{value_binder<int>()};
|
|
|
+ value_binder<collect> binder{};
|
|
|
TS_ASSERT_THROWS_NOTHING(parse(json::binder::bind(out, binder), data, allow_all));
|
|
|
TS_ASSERT_EQUALS(out, collect({{"a", 1}, {"b", 2}}));
|
|
|
}
|
|
|
@@ -56,7 +56,7 @@ public:
|
|
|
char data[] = "{ \"a\" : 1 , \"b\" : 2";
|
|
|
using collect = std::map<std::string, int>;
|
|
|
collect out;
|
|
|
- value_binder<collect> binder{value_binder<int>()};
|
|
|
+ value_binder<collect> binder{};
|
|
|
TS_ASSERT_THROWS(parse(json::binder::bind(out, binder), data, allow_all),
|
|
|
json::unterminated_json_exception);
|
|
|
}
|
|
|
@@ -65,7 +65,7 @@ public:
|
|
|
char data[] = "{ \"a\" : 1 , \"b\" }";
|
|
|
using collect = std::map<std::string, int>;
|
|
|
collect out;
|
|
|
- value_binder<collect> binder{value_binder<int>()};
|
|
|
+ value_binder<collect> binder{};
|
|
|
TS_ASSERT_THROWS(parse(json::binder::bind(out, binder), data, allow_all),
|
|
|
json::malformed_json_exception);
|
|
|
}
|
|
|
@@ -74,8 +74,28 @@ public:
|
|
|
char data[] = "\"a\" : 1 , \"b\" : 2";
|
|
|
using collect = std::map<std::string, int>;
|
|
|
collect out;
|
|
|
- value_binder<collect> binder{value_binder<int>()};
|
|
|
+ value_binder<collect> binder{};
|
|
|
TS_ASSERT_THROWS(parse(json::binder::bind(out, binder), data, allow_all),
|
|
|
json::malformed_json_exception);
|
|
|
}
|
|
|
-};
|
|
|
+
|
|
|
+ void test_write_vector() {
|
|
|
+ std::string const expected = "[5,4,7]";
|
|
|
+ std::stringstream ss;
|
|
|
+ using collect = std::vector<int>;
|
|
|
+ collect const in{ 5, 4, 7 };
|
|
|
+ value_binder<collect> binder{};
|
|
|
+ TS_ASSERT_THROWS_NOTHING(write(json::binder::bind(in, binder), ss));
|
|
|
+ TS_ASSERT_EQUALS(ss.str(), expected);
|
|
|
+ }
|
|
|
+
|
|
|
+ void test_write_map() {
|
|
|
+ std::string const expected = "{\"a\":1,\"b\":2}";
|
|
|
+ std::stringstream ss;
|
|
|
+ using collect = std::map<std::string, int>;
|
|
|
+ collect const in{ { "a", 1 }, { "b", 2 } };
|
|
|
+ value_binder<collect> binder{};
|
|
|
+ TS_ASSERT_THROWS_NOTHING(write(json::binder::bind(in, binder), ss));
|
|
|
+ TS_ASSERT_EQUALS(ss.str(), expected);
|
|
|
+ }
|
|
|
+};
|