Mercurial > malikania
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 |
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 | 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() |