]> granicus.if.org Git - icinga2/blob - test/base-value.cpp
Merge pull request #6999 from Icinga/bugfix/compiler-warnings
[icinga2] / test / base-value.cpp
1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
2
3 #include "base/value.hpp"
4 #include <BoostTestTargetConfig.h>
5
6 using namespace icinga;
7
8 BOOST_AUTO_TEST_SUITE(base_value)
9
10 BOOST_AUTO_TEST_CASE(scalar)
11 {
12         Value v;
13
14         v = 3;
15         BOOST_CHECK(v.IsScalar());
16
17         v = "hello";
18         BOOST_CHECK(v.IsScalar());
19
20         v = Empty;
21         BOOST_CHECK(!v.IsScalar());
22 }
23
24 BOOST_AUTO_TEST_CASE(convert)
25 {
26         Value v;
27         BOOST_CHECK(v.IsEmpty());
28         BOOST_CHECK(v == "");
29         BOOST_CHECK(static_cast<double>(v) == 0);
30         BOOST_CHECK(!v.IsScalar());
31         BOOST_CHECK(!v.IsObjectType<Object>());
32
33         BOOST_CHECK(v + "hello" == "hello");
34         BOOST_CHECK("hello" + v == "hello");
35 }
36
37 BOOST_AUTO_TEST_CASE(format)
38 {
39         Value v = 3;
40
41         std::ostringstream obuf;
42         obuf << v;
43
44         BOOST_CHECK(obuf.str() == "3");
45
46         std::istringstream ibuf("3");
47         ibuf >> v;
48
49         BOOST_CHECK(v != 3);
50 }
51
52 BOOST_AUTO_TEST_SUITE_END()