#define BOOST_TEST_MODULE "test_result" #include #include #include BOOST_AUTO_TEST_CASE(test_construct) { { auto s = toml::ok(42); toml::result result(s); BOOST_TEST(!!result); BOOST_TEST(result.is_ok()); BOOST_TEST(!result.is_err()); BOOST_TEST(result.unwrap() == 42); } { const auto s = toml::ok(42); toml::result result(s); BOOST_TEST(!!result); BOOST_TEST(result.is_ok()); BOOST_TEST(!result.is_err()); BOOST_TEST(result.unwrap() == 42); } { toml::result result(toml::ok(42)); BOOST_TEST(!!result); BOOST_TEST(result.is_ok()); BOOST_TEST(!result.is_err()); BOOST_TEST(result.unwrap() == 42); } { auto f = toml::err("foobar"); toml::result result(f); BOOST_TEST(!result); BOOST_TEST(!result.is_ok()); BOOST_TEST(result.is_err()); BOOST_TEST(result.unwrap_err() == "foobar"); } { const auto f = toml::err("foobar"); toml::result result(f); BOOST_TEST(!result); BOOST_TEST(!result.is_ok()); BOOST_TEST(result.is_err()); BOOST_TEST(result.unwrap_err() == "foobar"); } { toml::result result(toml::err("foobar")); BOOST_TEST(!result); BOOST_TEST(!result.is_ok()); BOOST_TEST(result.is_err()); BOOST_TEST(result.unwrap_err() == "foobar"); } } BOOST_AUTO_TEST_CASE(test_assignment) { { toml::result result(toml::err("foobar")); result = toml::ok(42); BOOST_TEST(!!result); BOOST_TEST(result.is_ok()); BOOST_TEST(!result.is_err()); BOOST_TEST(result.unwrap() == 42); } { toml::result result(toml::err("foobar")); auto s = toml::ok(42); result = s; BOOST_TEST(!!result); BOOST_TEST(result.is_ok()); BOOST_TEST(!result.is_err()); BOOST_TEST(result.unwrap() == 42); } { toml::result result(toml::err("foobar")); const auto s = toml::ok(42); result = s; BOOST_TEST(!!result); BOOST_TEST(result.is_ok()); BOOST_TEST(!result.is_err()); BOOST_TEST(result.unwrap() == 42); } { toml::result result(toml::err("foobar")); result = toml::err("hoge"); BOOST_TEST(!result); BOOST_TEST(!result.is_ok()); BOOST_TEST(result.is_err()); BOOST_TEST(result.unwrap_err() == "hoge"); } { toml::result result(toml::err("foobar")); auto f = toml::err("hoge"); result = f; BOOST_TEST(!result); BOOST_TEST(!result.is_ok()); BOOST_TEST(result.is_err()); BOOST_TEST(result.unwrap_err() == "hoge"); } { toml::result result(toml::err("foobar")); const auto f = toml::err("hoge"); result = f; BOOST_TEST(!result); BOOST_TEST(!result.is_ok()); BOOST_TEST(result.is_err()); BOOST_TEST(result.unwrap_err() == "hoge"); } }