TEST(PropertyTests, BooleanPropertyEncapsulatesBoolValue) { bool b = false; Property p = b; ASSERT_EQ(p.Type(), PropertyTypes::Boolean); ASSERT_NO_THROW(p.AsBool()); ASSERT_EQ(p.AsBool().Get(), false); p.AsBool().Set(true); ASSERT_EQ(p.AsBool().Get(), true); ASSERT_EQ(b, true); b = false; ASSERT_EQ(p.AsBool().Get(), false); }