libweave: Remove chromeos::Any from commands and state
Now PropValue can be constructed from base::Value.
BUG=brillo:1245, brillo:1246
TEST='FEATURES=test emerge-gizmo buffet'
Change-Id: I9a639aaf320499615da5f9735353d9e8ba9d4ad7
Reviewed-on: https://chromium-review.googlesource.com/289644
Trybot-Ready: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/libweave/src/commands/object_schema_unittest.cc b/libweave/src/commands/object_schema_unittest.cc
index d1c7269..018c28f 100644
--- a/libweave/src/commands/object_schema_unittest.cc
+++ b/libweave/src/commands/object_schema_unittest.cc
@@ -31,7 +31,8 @@
std::vector<T> values;
values.reserve(arr.size());
for (const auto& prop_value : arr) {
- values.push_back(prop_value->GetValueAsAny().Get<T>());
+ const auto& value = static_cast<const TypedValueBase<T>&>(*prop_value);
+ values.push_back(value.GetValue());
}
return values;
}
@@ -153,12 +154,12 @@
TEST(CommandSchema, IntPropType_CreateValue) {
IntPropType prop;
chromeos::ErrorPtr error;
- auto val = prop.CreateValue(2, &error);
+ auto val = prop.CreateValue(base::FundamentalValue{2}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
- EXPECT_EQ(2, val->GetValueAsAny().Get<int>());
+ EXPECT_EQ(2, val->GetValue());
- val = prop.CreateValue("blah", &error);
+ val = prop.CreateValue(base::StringValue{"blah"}, &error);
EXPECT_EQ(nullptr, val.get());
ASSERT_NE(nullptr, error.get());
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -242,12 +243,12 @@
TEST(CommandSchema, BoolPropType_CreateValue) {
BooleanPropType prop;
chromeos::ErrorPtr error;
- auto val = prop.CreateValue(true, &error);
+ auto val = prop.CreateValue(base::FundamentalValue{true}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
- EXPECT_TRUE(val->GetValueAsAny().Get<bool>());
+ EXPECT_TRUE(val->GetValue());
- val = prop.CreateValue("blah", &error);
+ val = prop.CreateValue(base::StringValue{"blah"}, &error);
EXPECT_EQ(nullptr, val.get());
ASSERT_NE(nullptr, error.get());
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -359,12 +360,12 @@
TEST(CommandSchema, DoublePropType_CreateValue) {
DoublePropType prop;
chromeos::ErrorPtr error;
- auto val = prop.CreateValue(2.0, &error);
+ auto val = prop.CreateValue(base::FundamentalValue{2.0}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
- EXPECT_DOUBLE_EQ(2.0, val->GetValueAsAny().Get<double>());
+ EXPECT_DOUBLE_EQ(2.0, val->GetValue());
- val = prop.CreateValue("blah", &error);
+ val = prop.CreateValue(base::StringValue{"blah"}, &error);
EXPECT_EQ(nullptr, val.get());
ASSERT_NE(nullptr, error.get());
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -484,12 +485,12 @@
TEST(CommandSchema, StringPropType_CreateValue) {
StringPropType prop;
chromeos::ErrorPtr error;
- auto val = prop.CreateValue(std::string{"blah"}, &error);
+ auto val = prop.CreateValue(base::StringValue{"blah"}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
- EXPECT_EQ("blah", val->GetValueAsAny().Get<std::string>());
+ EXPECT_EQ("blah", val->GetValue());
- val = prop.CreateValue(4, &error);
+ val = prop.CreateValue(base::FundamentalValue{4}, &error);
EXPECT_EQ(nullptr, val.get());
ASSERT_NE(nullptr, error.get());
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -737,17 +738,18 @@
.get(),
nullptr, nullptr));
ValueMap obj{
- {"width", int_type.CreateValue(10, nullptr)},
- {"height", int_type.CreateValue(20, nullptr)},
+ {"width", int_type.CreateValue(base::FundamentalValue{10}, nullptr)},
+ {"height", int_type.CreateValue(base::FundamentalValue{20}, nullptr)},
};
chromeos::ErrorPtr error;
- auto val = prop.CreateValue(obj, &error);
+ auto val = prop.CreateValue(
+ *CreateDictionaryValue("{'width': 10, 'height': 20}"), &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
- EXPECT_EQ(obj, val->GetValueAsAny().Get<ValueMap>());
+ EXPECT_EQ(obj, val->GetValue());
- val = prop.CreateValue("blah", &error);
+ val = prop.CreateValue(base::StringValue{"blah"}, &error);
EXPECT_EQ(nullptr, val.get());
ASSERT_NE(nullptr, error.get());
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());
@@ -866,40 +868,21 @@
chromeos::ErrorPtr error;
ValueVector arr;
- auto val = prop.CreateValue(arr, &error);
+ auto val = prop.CreateValue(base::ListValue{}, &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
- EXPECT_EQ(arr, val->GetValueAsAny().Get<ValueVector>());
+ EXPECT_EQ(arr, val->GetValue());
EXPECT_JSON_EQ("[]", *val->ToJson());
- IntPropType int_type;
- ObjectPropType obj_type;
- ASSERT_TRUE(obj_type.FromJson(
- CreateDictionaryValue(
- "{'properties':{'width':'integer','height':'integer'}}")
- .get(),
- nullptr, nullptr));
- arr.push_back(obj_type.CreateValue(
- ValueMap{
- {"width", int_type.CreateValue(10, nullptr)},
- {"height", int_type.CreateValue(20, nullptr)},
- },
- nullptr));
- arr.push_back(obj_type.CreateValue(
- ValueMap{
- {"width", int_type.CreateValue(17, nullptr)},
- {"height", int_type.CreateValue(18, nullptr)},
- },
- nullptr));
-
- val = prop.CreateValue(arr, &error);
+ val = prop.CreateValue(
+ *CreateValue("[{'height':20,'width':10},{'width':17, 'height':18}]"),
+ &error);
ASSERT_NE(nullptr, val.get());
EXPECT_EQ(nullptr, error.get());
- EXPECT_EQ(arr, val->GetValueAsAny().Get<ValueVector>());
EXPECT_JSON_EQ("[{'height':20,'width':10},{'height':18,'width':17}]",
*val->ToJson());
- val = prop.CreateValue("blah", &error);
+ val = prop.CreateValue(base::StringValue{"blah"}, &error);
EXPECT_EQ(nullptr, val.get());
ASSERT_NE(nullptr, error.get());
EXPECT_EQ(errors::commands::kTypeMismatch, error->GetCode());