TEST(Value, list) { int one = 1; AnyReference v = AnyReference::from(one); v.set(5); ASSERT_ANY_THROW(v.set("foo")); ASSERT_ANY_THROW(v.set(std::vector<int>())); std::vector<int> vint; vint.push_back(12); v = AnyReference::from(vint); v.append(7); ASSERT_EQ(7, v[1].toInt()); ASSERT_EQ(7, v[1].toFloat()); ASSERT_EQ(7, v.element<int>(1)); v[1].setInt(8); ASSERT_EQ(8, v[1].toInt()); v.element<int>(1) = 9; ASSERT_EQ(9, v[1].toInt()); ASSERT_ANY_THROW(v.element<double>(1)); // wrong type ASSERT_ANY_THROW(v.element<int>(17)); // out of bound EXPECT_EQ(v.as<std::vector<int> >().size(), v.size()); }