|
@@ -80,4 +80,39 @@ TEST(OptionalValueTest, specifyValue) {
|
|
|
ASSERT_TRUE(value.isSpecified());
|
|
|
}
|
|
|
|
|
|
+// This test checks if the assignment operator assignining an actual
|
|
|
+// value to the optional value works as expected.
|
|
|
+TEST(OptionalValueTest, assignValue) {
|
|
|
+ OptionalValue<int> value(10);
|
|
|
+ ASSERT_EQ(10, value.get());
|
|
|
+ ASSERT_FALSE(value.isSpecified());
|
|
|
+
|
|
|
+ // Set the new value and mark it "specified".
|
|
|
+ value = 111;
|
|
|
+ ASSERT_EQ(111, value.get());
|
|
|
+ ASSERT_TRUE(value.isSpecified());
|
|
|
+
|
|
|
+ // Specify another value. The value should be still "specified".
|
|
|
+ value = 1000;
|
|
|
+ ASSERT_EQ(1000, value.get());
|
|
|
+ ASSERT_TRUE(value.isSpecified());
|
|
|
+}
|
|
|
+
|
|
|
+// This test checks if the equality and inequality operators work
|
|
|
+// correctly for the optional value.
|
|
|
+TEST(OptionalValueTest, equalityOperators) {
|
|
|
+ OptionalValue<int> value(10);
|
|
|
+ ASSERT_EQ(10, value.get());
|
|
|
+ ASSERT_FALSE(value.isSpecified());
|
|
|
+
|
|
|
+ EXPECT_TRUE(value == 10);
|
|
|
+ EXPECT_FALSE(value != 10);
|
|
|
+
|
|
|
+ value = 123;
|
|
|
+ EXPECT_TRUE(value == 123);
|
|
|
+ EXPECT_FALSE(value != 123);
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
} // end of anonymous namespace
|