Пример #1
0
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");
}
Пример #2
0
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);
}