コード例 #1
0
TEST(PropertyTests, ObjectPropertyEncapsulatesObjectsWithInheritance)
{
    using namespace ObjectPropertyEncapsulatesObjectsWithInheritanceNamespace;
    Derived d;
    Property p = d;
    ASSERT_NO_THROW(p.AsObject().Get("a").AsInt());
    ASSERT_NO_THROW(p.AsObject().Get("b").AsBool());
}
コード例 #2
0
TEST(PropertyTests, ObjectPropertyEncapsulatesPodStruct)
{
    using namespace ObjectPropertyEncapsulatesPodStructNamespace;
    Foo f;
    Property p = f;
    p.AsObject().Get("a").AsInt().Set(2);
    p.AsObject().Get("b").AsReal().Set(12.0);
    p.AsObject().Get("c").AsBool().Set(true);
    p.AsObject().Get("d").AsString().Set("hello");
    ASSERT_EQ(f.a, 2);
    ASSERT_EQ(f.b, 12.0f);
    ASSERT_EQ(f.c, true);
    ASSERT_STREQ(f.d.c_str(), "hello");
}
コード例 #3
0
TEST(PropertyTests, ObjectPropertyCanHaveCollectionMember)
{
    using namespace ObjectPropertyHasCollectionFieldNamespace;
    CollectionContainer cc;
    Property p = cc;
    p.AsObject().Get("v").AsCollection().Grow();
    ASSERT_EQ(cc.v.size(), 1);
}
コード例 #4
0
TEST(PropertyTests, ObjectPropertyEncapsulatesInnerClass)
{
    using namespace ObjectPropertyEncapsulatesInnerClassNamespace;
    Outer o;
    o.i.a = 0;
    Property p = o;
    p.AsObject().Get("i").AsObject().Get("a").AsInt().Set(1);
    ASSERT_EQ(o.i.a, 1);
}
コード例 #5
0
TEST(PropertyTests, ObjectPropertyEncapsulatesCompositeObject)
{
    using namespace ObjectPropertyEncapsulatesCompositeObjectNamespace;
    Baz b;
    b.b.a = 0;
    Property p = b;
    p.AsObject().Get("b").AsObject().Get("a").AsInt().Set(1);
    ASSERT_EQ(b.b.a, 1);
}