annotate tests/libcommon/util/main.cpp @ 98:f4d23ad4aa27

Common: refactoring class mlk::size 1. Make uniform size representation in JSON format: { "width": 100, "height": 200 } The Javascript API was using this form while an array was used in loaders. 2. Create brand new functions in util::json to parse mlk::size objects, Updated util::json::require_(u)int as well. 3. Add new tests for mlk::size object, 4. Get rid of utilities in loader as they are in util::json instead.
author David Demelier <markand@malikania.fr>
date Tue, 04 Jul 2017 13:23:15 +0200
parents 469b6d558ab0
children 119bcc5a727e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
1 /*
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
2 * main.cpp -- test util
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
3 *
76
858621081b95 Happy new year!
David Demelier <markand@malikania.fr>
parents: 46
diff changeset
4 * Copyright (c) 2013-2017 Malikania Authors
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
5 *
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
8 * copyright notice and this permission notice appear in all copies.
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
9 *
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
17 */
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
18
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
19 #define BOOST_TEST_MODULE "Util"
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
20 #include <boost/test/unit_test.hpp>
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
21
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
22 #include <malikania/util.hpp>
98
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
23 #include <malikania/size.hpp>
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
24
43
fabbe1759cec Misc: switch to mlk namespace, closes #589
David Demelier <markand@malikania.fr>
parents: 33
diff changeset
25 using namespace mlk;
88
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
26 using namespace nlohmann;
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
27
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
28 namespace nlohmann {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
29
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
30 namespace detail {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
31
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
32 std::ostream& operator<<(std::ostream& out, json::value_t type)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
33 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
34 out << json(type).type_name();
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
35 return out;
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
36 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
37
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
38 } // !detail
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
39
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
40 } // !nlohmann
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
41
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
42 /*
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
43 * util::clamp
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
44 * ------------------------------------------------------------------
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
45 */
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
46
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
47 BOOST_AUTO_TEST_SUITE(clamp)
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
48
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
49 BOOST_AUTO_TEST_CASE(normal)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
50 {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
51 BOOST_REQUIRE_EQUAL(5, util::clamp(5, 0, 10));
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
52 }
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
53
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
54 BOOST_AUTO_TEST_CASE(minimum)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
55 {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
56 BOOST_REQUIRE_EQUAL(0, util::clamp(0, 0, 10));
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
57 }
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
58
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
59 BOOST_AUTO_TEST_CASE(maximum)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
60 {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
61 BOOST_REQUIRE_EQUAL(10, util::clamp(10, 0, 10));
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
62 }
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
63
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
64 BOOST_AUTO_TEST_CASE(less)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
65 {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
66 BOOST_REQUIRE_EQUAL(0, util::clamp(-10, 0, 10));
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
67 }
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
68
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
69 BOOST_AUTO_TEST_CASE(higher)
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
70 {
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
71 BOOST_REQUIRE_EQUAL(10, util::clamp(20, 0, 10));
33
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
72 }
d4f5f7231b84 Misc: switch to .hpp, dos2unix everything while here, #478
David Demelier <markand@malikania.fr>
parents: 30
diff changeset
73
44
f30c84b4b9ed Tests: switch from GoogleTest to Boost.Unit, closes #588
David Demelier <markand@malikania.fr>
parents: 43
diff changeset
74 BOOST_AUTO_TEST_SUITE_END()
88
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
75
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
76 /*
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
77 * util::json::require
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
78 * ------------------------------------------------------------------
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
79 */
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
80
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
81 BOOST_AUTO_TEST_SUITE(json_require)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
82
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
83 BOOST_AUTO_TEST_CASE(simple)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
84 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
85 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
86 { "b", true },
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
87 { "i", 123 },
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
88 { "s", "blabla" }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
89 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
90
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
91 BOOST_REQUIRE_EQUAL(util::json::require(
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
92 object, "/b"_json_pointer, json::value_t::boolean).type(), json::value_t::boolean);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
93 BOOST_REQUIRE_EQUAL(util::json::require(
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
94 object, "/i"_json_pointer, json::value_t::number_integer).type(), json::value_t::number_integer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
95 BOOST_REQUIRE_EQUAL(util::json::require(
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
96 object, "/s"_json_pointer, json::value_t::string).type(), json::value_t::string);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
97 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
98
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
99 BOOST_AUTO_TEST_CASE(nonexistent)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
100 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
101 auto json = json::object();
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
102
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
103 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
104 util::json::require(json, "/non-existent"_json_pointer, json::value_t::string);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
105 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
106 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
107 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::null);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
108 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::string);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
109 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
110 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
111
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
112 BOOST_AUTO_TEST_CASE(invalid)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
113 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
114 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
115 { "not-string", 123 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
116 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
117
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
118 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
119 util::json::require(object, "/not-string"_json_pointer, json::value_t::string);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
120 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
121 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
122 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::number_integer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
123 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::string);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
124 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
125 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
126
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
127 BOOST_AUTO_TEST_SUITE_END()
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
128
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
129 /*
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
130 * util::json::require_array
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
131 * ------------------------------------------------------------------
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
132 */
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
133
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
134 BOOST_AUTO_TEST_SUITE(json_require_array)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
135
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
136 BOOST_AUTO_TEST_CASE(simple)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
137 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
138 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
139 { "a", { 1, 2, 3 } },
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
140 { "l1", {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
141 { "l2", { 4, 5, 6 } }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
142 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
143 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
144 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
145
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
146 auto a = util::json::require_array(object, "/a"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
147 auto l2 = util::json::require_array(object, "/l1/l2"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
148
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
149 BOOST_REQUIRE(a.is_array());
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
150 BOOST_REQUIRE(l2.is_array());
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
151 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
152
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
153 BOOST_AUTO_TEST_CASE(invalid)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
154 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
155 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
156 { "not-array", 123 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
157 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
158
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
159 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
160 util::json::require_array(object, "/not-array"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
161 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
162 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
163 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::number_integer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
164 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::array);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
165 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
166 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
167
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
168 BOOST_AUTO_TEST_SUITE_END()
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
169
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
170 /*
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
171 * util::json::require_bool
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
172 * ------------------------------------------------------------------
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
173 */
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
174
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
175 BOOST_AUTO_TEST_SUITE(json_require_bool)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
176
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
177 BOOST_AUTO_TEST_CASE(simple)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
178 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
179 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
180 { "b", true }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
181 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
182
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
183 BOOST_REQUIRE_EQUAL(util::json::require_bool(object, "/b"_json_pointer), true);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
184 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
185
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
186 BOOST_AUTO_TEST_CASE(invalid)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
187 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
188 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
189 { "not-bool", 123 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
190 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
191
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
192 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
193 util::json::require_bool(object, "/not-bool"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
194 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
195 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
196 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::number_integer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
197 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::boolean);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
198 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
199 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
200
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
201 BOOST_AUTO_TEST_SUITE_END()
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
202
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
203 /*
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
204 * util::json::require_int
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
205 * ------------------------------------------------------------------
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
206 */
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
207
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
208 BOOST_AUTO_TEST_SUITE(json_require_int)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
209
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
210 BOOST_AUTO_TEST_CASE(simple)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
211 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
212 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
213 { "i", 123 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
214 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
215
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
216 BOOST_REQUIRE_EQUAL(util::json::require_int(object, "/i"_json_pointer), 123);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
217 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
218
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
219 BOOST_AUTO_TEST_CASE(invalid)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
220 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
221 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
222 { "not-int", true }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
223 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
224
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
225 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
226 util::json::require_int(object, "/not-int"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
227 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
228 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
229 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::boolean);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
230 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::number_integer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
231 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
232 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
233
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
234 BOOST_AUTO_TEST_SUITE_END()
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
235
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
236 /*
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
237 * util::json::require_object
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
238 * ------------------------------------------------------------------
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
239 */
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
240
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
241 BOOST_AUTO_TEST_SUITE(json_require_object)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
242
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
243 BOOST_AUTO_TEST_CASE(simple)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
244 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
245 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
246 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
247 "network", json::object({
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
248 { "host", "localhost" },
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
249 { "port", 9090 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
250 })
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
251 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
252 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
253
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
254 BOOST_REQUIRE(util::json::require_object(object, "/network"_json_pointer).is_object());
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
255 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
256
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
257 BOOST_AUTO_TEST_CASE(invalid)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
258 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
259 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
260 { "not-object", 123 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
261 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
262
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
263 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
264 util::json::require_object(object, "/not-object"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
265 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
266 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
267 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::number_integer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
268 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::object);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
269 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
270 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
271
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
272 BOOST_AUTO_TEST_SUITE_END()
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
273
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
274 /*
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
275 * util::json::require_string
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
276 * ------------------------------------------------------------------
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
277 */
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
278
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
279 BOOST_AUTO_TEST_SUITE(json_require_string)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
280
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
281 BOOST_AUTO_TEST_CASE(simple)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
282 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
283 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
284 { "s", "hello" }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
285 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
286
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
287 BOOST_REQUIRE_EQUAL(util::json::require_string(object, "/s"_json_pointer), "hello");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
288 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
289
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
290 BOOST_AUTO_TEST_CASE(invalid)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
291 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
292 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
293 { "not-string", 123 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
294 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
295
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
296 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
297 util::json::require_string(object, "/not-string"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
298 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
299 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
300 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::number_integer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
301 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::string);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
302 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
303 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
304
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
305 BOOST_AUTO_TEST_SUITE_END()
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
306
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
307 /*
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
308 * util::json::require_uint
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
309 * ------------------------------------------------------------------
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
310 */
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
311
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
312 BOOST_AUTO_TEST_SUITE(json_require_uint)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
313
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
314 BOOST_AUTO_TEST_CASE(simple)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
315 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
316 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
317 { "u1", 123U }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
318 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
319
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
320 BOOST_REQUIRE_EQUAL(util::json::require_uint(object, "/u1"_json_pointer), 123U);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
321 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
322
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
323 BOOST_AUTO_TEST_CASE(invalid)
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
324 {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
325 json object{
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
326 { "not-uint", true }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
327 };
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
328
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
329 try {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
330 util::json::require_uint(object, "/not-uint"_json_pointer);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
331 BOOST_FAIL("exception expected");
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
332 } catch (const util::json::property_error& ex) {
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
333 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::boolean);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
334 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::number_unsigned);
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
335 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
336 }
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
337
469b6d558ab0 Common: add util::json functions, closes #628
David Demelier <markand@malikania.fr>
parents: 76
diff changeset
338 BOOST_AUTO_TEST_SUITE_END()
98
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
339
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
340 BOOST_AUTO_TEST_SUITE(json_require_size)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
341
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
342 /*
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
343 * util::json::require_size
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
344 * ------------------------------------------------------------------
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
345 */
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
346
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
347 BOOST_AUTO_TEST_CASE(simple)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
348 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
349 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
350 { "size", {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
351 { "width", 10 },
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
352 { "height", 20 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
353 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
354 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
355 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
356
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
357 BOOST_REQUIRE_EQUAL(util::json::require_size(object, "/size"_json_pointer), mlk::size(10, 20));
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
358 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
359
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
360 BOOST_AUTO_TEST_CASE(not_object)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
361 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
362 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
363 { "size", false }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
364 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
365
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
366 try {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
367 util::json::require_size(object, "/size"_json_pointer);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
368 BOOST_FAIL("exception expected");
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
369 } catch (const util::json::property_error& ex) {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
370 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::null);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
371 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::number_unsigned);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
372 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
373 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
374
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
375 BOOST_AUTO_TEST_CASE(not_int_width)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
376 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
377 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
378 { "size", {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
379 { "width", "10" },
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
380 { "height", 20 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
381 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
382 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
383 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
384
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
385 try {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
386 util::json::require_size(object, "/size"_json_pointer);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
387 BOOST_FAIL("exception expected");
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
388 } catch (const util::json::property_error& ex) {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
389 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::string);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
390 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::number_unsigned);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
391 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
392 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
393
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
394 BOOST_AUTO_TEST_CASE(not_int_height)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
395 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
396 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
397 { "size", {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
398 { "width", 10 },
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
399 { "height", "20" }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
400 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
401 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
402 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
403
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
404 try {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
405 util::json::require_size(object, "/size"_json_pointer);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
406 BOOST_FAIL("exception expected");
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
407 } catch (const util::json::property_error& ex) {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
408 BOOST_REQUIRE_EQUAL(ex.type(), json::value_t::string);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
409 BOOST_REQUIRE_EQUAL(ex.expected(), json::value_t::number_unsigned);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
410 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
411 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
412
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
413 BOOST_AUTO_TEST_SUITE_END()
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
414
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
415 BOOST_AUTO_TEST_SUITE(json_get_size)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
416
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
417 BOOST_AUTO_TEST_CASE(simple)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
418 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
419 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
420 { "size", {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
421 { "width", 10 },
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
422 { "height", 20 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
423 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
424 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
425 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
426
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
427 BOOST_REQUIRE_EQUAL(util::json::get_size(object, "/size"_json_pointer), mlk::size(10, 20));
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
428 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
429
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
430 BOOST_AUTO_TEST_CASE(not_object)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
431 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
432 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
433 { "size", false }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
434 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
435
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
436 mlk::size def(10, 20);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
437
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
438 BOOST_REQUIRE_EQUAL(util::json::get_size(object, "/size"_json_pointer, def), def);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
439 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
440
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
441 BOOST_AUTO_TEST_CASE(not_int_width)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
442 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
443 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
444 { "size", {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
445 { "width", "10" },
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
446 { "height", 20 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
447 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
448 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
449 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
450
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
451 mlk::size def(10, 20);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
452
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
453 BOOST_REQUIRE_EQUAL(util::json::get_size(object, "/size"_json_pointer, def), def);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
454 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
455
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
456 BOOST_AUTO_TEST_CASE(not_int_height)
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
457 {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
458 json object{
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
459 { "size", {
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
460 { "width", 10 },
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
461 { "height", "20" }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
462 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
463 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
464 };
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
465
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
466 mlk::size def(10, 20);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
467
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
468 BOOST_REQUIRE_EQUAL(util::json::get_size(object, "/size"_json_pointer, def), def);
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
469 }
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
470
f4d23ad4aa27 Common: refactoring class mlk::size
David Demelier <markand@malikania.fr>
parents: 88
diff changeset
471 BOOST_AUTO_TEST_SUITE_END()