#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_CHECK(!!result); BOOST_CHECK(result.is_ok()); BOOST_CHECK(!result.is_err()); BOOST_CHECK_EQUAL(result.unwrap(), 42); } { const auto s = toml::ok(42); toml::result result(s); BOOST_CHECK(!!result); BOOST_CHECK(result.is_ok()); BOOST_CHECK(!result.is_err()); BOOST_CHECK_EQUAL(result.unwrap(), 42); } { toml::result result(toml::ok(42)); BOOST_CHECK(!!result); BOOST_CHECK(result.is_ok()); BOOST_CHECK(!result.is_err()); BOOST_CHECK_EQUAL(result.unwrap(), 42); } { auto f = toml::err("foobar"); toml::result result(f); BOOST_CHECK(!result); BOOST_CHECK(!result.is_ok()); BOOST_CHECK(result.is_err()); BOOST_CHECK_EQUAL(result.unwrap_err(), "foobar"); } { const auto f = toml::err("foobar"); toml::result result(f); BOOST_CHECK(!result); BOOST_CHECK(!result.is_ok()); BOOST_CHECK(result.is_err()); BOOST_CHECK_EQUAL(result.unwrap_err(), "foobar"); } { toml::result result(toml::err("foobar")); BOOST_CHECK(!result); BOOST_CHECK(!result.is_ok()); BOOST_CHECK(result.is_err()); BOOST_CHECK_EQUAL(result.unwrap_err(), "foobar"); } } BOOST_AUTO_TEST_CASE(test_assignment) { { toml::result result(toml::err("foobar")); result = toml::ok(42); BOOST_CHECK(!!result); BOOST_CHECK(result.is_ok()); BOOST_CHECK(!result.is_err()); BOOST_CHECK_EQUAL(result.unwrap(), 42); } { toml::result result(toml::err("foobar")); auto s = toml::ok(42); result = s; BOOST_CHECK(!!result); BOOST_CHECK(result.is_ok()); BOOST_CHECK(!result.is_err()); BOOST_CHECK_EQUAL(result.unwrap(), 42); } { toml::result result(toml::err("foobar")); const auto s = toml::ok(42); result = s; BOOST_CHECK(!!result); BOOST_CHECK(result.is_ok()); BOOST_CHECK(!result.is_err()); BOOST_CHECK_EQUAL(result.unwrap(), 42); } { toml::result result(toml::err("foobar")); result = toml::err("hoge"); BOOST_CHECK(!result); BOOST_CHECK(!result.is_ok()); BOOST_CHECK(result.is_err()); BOOST_CHECK_EQUAL(result.unwrap_err(), "hoge"); } { toml::result result(toml::err("foobar")); auto f = toml::err("hoge"); result = f; BOOST_CHECK(!result); BOOST_CHECK(!result.is_ok()); BOOST_CHECK(result.is_err()); BOOST_CHECK_EQUAL(result.unwrap_err(), "hoge"); } { toml::result result(toml::err("foobar")); const auto f = toml::err("hoge"); result = f; BOOST_CHECK(!result); BOOST_CHECK(!result.is_ok()); BOOST_CHECK(result.is_err()); BOOST_CHECK_EQUAL(result.unwrap_err(), "hoge"); } }