aboutsummaryrefslogtreecommitdiff
path: root/src/test/OptionalRefTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/OptionalRefTest.cpp')
-rw-r--r--src/test/OptionalRefTest.cpp24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/test/OptionalRefTest.cpp b/src/test/OptionalRefTest.cpp
index 65bd816..219ccca 100644
--- a/src/test/OptionalRefTest.cpp
+++ b/src/test/OptionalRefTest.cpp
@@ -9,8 +9,30 @@ using namespace testing;
TEST(OptionalRefTest, Explicit) {
string value = "foo";
OptionalRef<string> ref;
+ EXPECT_FALSE(ref);
+ ASSERT_THROW(ref.get(), runtime_error);
+
+ ref.set(value);
+ EXPECT_TRUE(ref);
+ ASSERT_NO_THROW(ref.get());
+
+ ref.clear();
+ EXPECT_FALSE(ref);
+ ASSERT_THROW(ref.get(), runtime_error);
+}
+
+TEST(OptionalRefTest, Implicit) {
+ string value = "foo";
+ OptionalRef<string> ref = value;
+ EXPECT_TRUE(ref);
+ ASSERT_NO_THROW(ref.get());
- EXPECT_FALSE(bool(ref));
+ ref.clear();
+ EXPECT_FALSE(ref);
ASSERT_THROW(ref.get(), runtime_error);
+
+ ref = value;
+ EXPECT_TRUE(ref);
+ ASSERT_NO_THROW(ref.get());
}