From 9d66b6cfccd15a1600c30af5e744e8b0710eeae6 Mon Sep 17 00:00:00 2001 From: Loek Le Blansch Date: Thu, 21 Nov 2024 09:29:15 +0100 Subject: remove OptionalRef::set and OptionalRef::get --- src/test/OptionalRefTest.cpp | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) (limited to 'src/test') diff --git a/src/test/OptionalRefTest.cpp b/src/test/OptionalRefTest.cpp index 2072d56..1c69348 100644 --- a/src/test/OptionalRefTest.cpp +++ b/src/test/OptionalRefTest.cpp @@ -6,32 +6,42 @@ using namespace std; using namespace crepe; using namespace testing; -TEST(OptionalRefTest, Explicit) { +TEST(OptionalRefTest, Normal) { string value = "foo"; - OptionalRef ref; - EXPECT_FALSE(ref); - ASSERT_THROW(ref.get(), runtime_error); + OptionalRef ref = value; - ref.set(value); EXPECT_TRUE(ref); - ASSERT_NO_THROW(ref.get()); + ASSERT_NO_THROW({ + string & value_ref = ref; + EXPECT_EQ(value_ref, value); + }); ref.clear(); EXPECT_FALSE(ref); - ASSERT_THROW(ref.get(), runtime_error); + ASSERT_THROW({ + string & value_ref = ref; + }, runtime_error); } -TEST(OptionalRefTest, Implicit) { +TEST(OptionalRefTest, Empty) { string value = "foo"; - OptionalRef ref = value; - EXPECT_TRUE(ref); - ASSERT_NO_THROW(ref.get()); + OptionalRef ref; - ref.clear(); EXPECT_FALSE(ref); - ASSERT_THROW(ref.get(), runtime_error); + ASSERT_THROW({ + string & value_ref = ref; + }, runtime_error); +} - ref = value; - EXPECT_TRUE(ref); - ASSERT_NO_THROW(ref.get()); +TEST(OptionalRefTest, Chain) { + string value = "foo"; + OptionalRef ref1 = value; + OptionalRef ref2 = ref1; + + EXPECT_TRUE(ref2); + string & value_ref = ref2; + EXPECT_EQ(value_ref, value); + value_ref = "bar"; + EXPECT_EQ(value_ref, value); } + -- cgit v1.2.3