TEST(PropertyTests, StringPropertyEncapsulatesStlString) { std::string s = "Hello"; Property p = s; ASSERT_EQ(p.Type(), PropertyTypes::String); ASSERT_NO_THROW(p.AsString()); ASSERT_EQ(strcmp(p.AsString().Get(), "Hello"), 0); s = "world"; ASSERT_EQ(strcmp(p.AsString().Get(), "world"), 0); p.AsString().Set("foobar"); ASSERT_EQ(strcmp(p.AsString().Get(), "foobar"), 0); ASSERT_TRUE(s == "foobar"); }
TEST(PropertyTests, StringPropertyEncapsulatesCharArray) { char buf[16]; strcpy_s(buf, "Hello"); Property p = buf; ASSERT_EQ(p.Type(), PropertyTypes::String); ASSERT_NO_THROW(p.AsString()); ASSERT_EQ(strcmp(p.AsString().Get(), "Hello"), 0); strcpy_s(buf, "world"); ASSERT_EQ(strcmp(p.AsString().Get(), "world"), 0); p.AsString().Set("foobar"); ASSERT_EQ(strcmp(p.AsString().Get(), "foobar"), 0); ASSERT_EQ(strcmp(buf, "foobar"), 0); ASSERT_THROW(p.AsString().Set("averylongstringthatwontfit"), std::overflow_error); }