libweave: Add enums CommandOrigin and CommandStatus Enums are more convenient there. BUG=brillo:1245 TEST='FEATURES=test emerge-gizmo buffet' Change-Id: Idb69f3cd453802ae56a42b6952333e08af43d9dc Reviewed-on: https://chromium-review.googlesource.com/288390 Tested-by: Vitaly Buka <vitalybuka@chromium.org> Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/libweave/include/weave/command.h b/libweave/include/weave/command.h index 3274664..58a63fe 100644 --- a/libweave/include/weave/command.h +++ b/libweave/include/weave/command.h
@@ -12,6 +12,19 @@ namespace weave { +enum class CommandStatus { + kQueued, + kInProgress, + kPaused, + kError, + kDone, + kCancelled, + kAborted, + kExpired, +}; + +enum class CommandOrigin { kLocal, kCloud }; + class Command { public: // This interface lets the command to notify clients about changes. @@ -39,11 +52,10 @@ virtual const std::string& GetCategory() const = 0; // Returns the command status. - // TODO(vitalybuka): Status should be enum. - virtual const std::string& GetStatus() const = 0; + virtual CommandStatus GetStatus() const = 0; // Returns the origin of the command. - virtual const std::string& GetOrigin() const = 0; + virtual CommandOrigin GetOrigin() const = 0; // Returns the command parameters. virtual std::unique_ptr<base::DictionaryValue> GetParameters() const = 0;
diff --git a/libweave/src/base_api_handler.cc b/libweave/src/base_api_handler.cc index feb1ab6..28be501 100644 --- a/libweave/src/base_api_handler.cc +++ b/libweave/src/base_api_handler.cc
@@ -21,7 +21,7 @@ } void BaseApiHandler::OnCommandAdded(Command* command) { - if (command->GetStatus() != CommandInstance::kStatusQueued) + if (command->GetStatus() != CommandStatus::kQueued) return; if (command->GetName() == "base.updateBaseConfiguration")
diff --git a/libweave/src/base_api_handler_unittest.cc b/libweave/src/base_api_handler_unittest.cc index 8bc174a..3e35bd9 100644 --- a/libweave/src/base_api_handler_unittest.cc +++ b/libweave/src/base_api_handler_unittest.cc
@@ -67,14 +67,14 @@ void AddCommand(const std::string& command) { auto command_instance = CommandInstance::FromJson( unittests::CreateDictionaryValue(command.c_str()).get(), - commands::attributes::kCommand_Visibility_Local, - command_manager_->GetCommandDictionary(), nullptr, nullptr); + CommandOrigin::kLocal, command_manager_->GetCommandDictionary(), + nullptr, nullptr); EXPECT_TRUE(!!command_instance); std::string id{base::IntToString(++command_id_)}; command_instance->SetID(id); command_manager_->AddCommand(std::move(command_instance)); - EXPECT_EQ(CommandInstance::kStatusDone, + EXPECT_EQ(CommandStatus::kDone, command_manager_->FindCommand(id)->GetStatus()); }
diff --git a/libweave/src/commands/cloud_command_proxy.cc b/libweave/src/commands/cloud_command_proxy.cc index 70430c7..a6685fc 100644 --- a/libweave/src/commands/cloud_command_proxy.cc +++ b/libweave/src/commands/cloud_command_proxy.cc
@@ -10,6 +10,7 @@ #include "libweave/src/commands/prop_constraints.h" #include "libweave/src/commands/prop_types.h" #include "libweave/src/commands/schema_constants.h" +#include "weave/enum_to_string.h" namespace weave { @@ -39,7 +40,7 @@ void CloudCommandProxy::OnStatusChanged() { std::unique_ptr<base::DictionaryValue> patch{new base::DictionaryValue}; patch->SetString(commands::attributes::kCommand_State, - command_instance_->GetStatus()); + EnumToString(command_instance_->GetStatus())); QueueCommandUpdate(std::move(patch)); }
diff --git a/libweave/src/commands/cloud_command_proxy_unittest.cc b/libweave/src/commands/cloud_command_proxy_unittest.cc index bd45e25..7cc054e 100644 --- a/libweave/src/commands/cloud_command_proxy_unittest.cc +++ b/libweave/src/commands/cloud_command_proxy_unittest.cc
@@ -139,8 +139,9 @@ })"); CHECK(command_json.get()); - command_instance_ = CommandInstance::FromJson( - command_json.get(), "cloud", command_dictionary_, nullptr, nullptr); + command_instance_ = + CommandInstance::FromJson(command_json.get(), CommandOrigin::kCloud, + command_dictionary_, nullptr, nullptr); CHECK(command_instance_.get()); // Backoff - start at 1s and double with each backoff attempt and no jitter.
diff --git a/libweave/src/commands/command_instance.cc b/libweave/src/commands/command_instance.cc index 34ed8dc..d2efcb4 100644 --- a/libweave/src/commands/command_instance.cc +++ b/libweave/src/commands/command_instance.cc
@@ -14,20 +14,40 @@ #include "libweave/src/commands/prop_types.h" #include "libweave/src/commands/schema_constants.h" #include "libweave/src/commands/schema_utils.h" +#include "weave/enum_to_string.h" namespace weave { -const char CommandInstance::kStatusQueued[] = "queued"; -const char CommandInstance::kStatusInProgress[] = "inProgress"; -const char CommandInstance::kStatusPaused[] = "paused"; -const char CommandInstance::kStatusError[] = "error"; -const char CommandInstance::kStatusDone[] = "done"; -const char CommandInstance::kStatusCancelled[] = "cancelled"; -const char CommandInstance::kStatusAborted[] = "aborted"; -const char CommandInstance::kStatusExpired[] = "expired"; +namespace { + +const EnumToStringMap<CommandStatus>::Map kMapStatus[] = { + {CommandStatus::kQueued, "queued"}, + {CommandStatus::kInProgress, "inProgress"}, + {CommandStatus::kPaused, "paused"}, + {CommandStatus::kError, "error"}, + {CommandStatus::kDone, "done"}, + {CommandStatus::kCancelled, "cancelled"}, + {CommandStatus::kAborted, "aborted"}, + {CommandStatus::kExpired, "expired"}, +}; + +const EnumToStringMap<CommandOrigin>::Map kMapOrigin[] = { + {CommandOrigin::kLocal, "local"}, + {CommandOrigin::kCloud, "cloud"}, +}; + +} // namespace + +template <> +EnumToStringMap<CommandStatus>::EnumToStringMap() + : EnumToStringMap(kMapStatus) {} + +template <> +EnumToStringMap<CommandOrigin>::EnumToStringMap() + : EnumToStringMap(kMapOrigin) {} CommandInstance::CommandInstance(const std::string& name, - const std::string& origin, + CommandOrigin origin, const CommandDefinition* command_definition, const ValueMap& parameters) : name_{name}, @@ -54,11 +74,11 @@ return command_definition_->GetCategory(); } -const std::string& CommandInstance::GetStatus() const { +CommandStatus CommandInstance::GetStatus() const { return status_; } -const std::string& CommandInstance::GetOrigin() const { +CommandOrigin CommandInstance::GetOrigin() const { return origin_; } @@ -84,7 +104,7 @@ return false; // Change status even if progress unchanged, e.g. 0% -> 0%. - SetStatus(kStatusInProgress); + SetStatus(CommandStatus::kInProgress); if (obj != progress_) { progress_ = obj; for (auto observer : observers_) @@ -155,7 +175,7 @@ std::unique_ptr<CommandInstance> CommandInstance::FromJson( const base::Value* value, - const std::string& origin, + CommandOrigin origin, const CommandDictionary& dictionary, std::string* command_id, chromeos::ErrorPtr* error) { @@ -225,7 +245,7 @@ TypedValueToJson(progress_, nullptr).release()); json->Set(commands::attributes::kCommand_Results, TypedValueToJson(results_, nullptr).release()); - json->SetString(commands::attributes::kCommand_State, status_); + json->SetString(commands::attributes::kCommand_State, EnumToString(status_)); return json; } @@ -235,24 +255,24 @@ } void CommandInstance::Abort() { - SetStatus(kStatusAborted); + SetStatus(CommandStatus::kAborted); RemoveFromQueue(); // The command will be destroyed after that, so do not access any members. } void CommandInstance::Cancel() { - SetStatus(kStatusCancelled); + SetStatus(CommandStatus::kCancelled); RemoveFromQueue(); // The command will be destroyed after that, so do not access any members. } void CommandInstance::Done() { - SetStatus(kStatusDone); + SetStatus(CommandStatus::kDone); RemoveFromQueue(); // The command will be destroyed after that, so do not access any members. } -void CommandInstance::SetStatus(const std::string& status) { +void CommandInstance::SetStatus(CommandStatus status) { if (status != status_) { status_ = status; for (auto observer : observers_)
diff --git a/libweave/src/commands/command_instance.h b/libweave/src/commands/command_instance.h index e911ede..ee70065 100644 --- a/libweave/src/commands/command_instance.h +++ b/libweave/src/commands/command_instance.h
@@ -34,7 +34,7 @@ // be in format "<package_name>.<command_name>", a command |category| and // a list of parameters and their values specified in |parameters|. CommandInstance(const std::string& name, - const std::string& origin, + CommandOrigin origin, const CommandDefinition* command_definition, const ValueMap& parameters); ~CommandInstance() override; @@ -45,8 +45,8 @@ const std::string& GetID() const override; const std::string& GetName() const override; const std::string& GetCategory() const override; - const std::string& GetStatus() const override; - const std::string& GetOrigin() const override; + CommandStatus GetStatus() const override; + CommandOrigin GetOrigin() const override; std::unique_ptr<base::DictionaryValue> GetParameters() const override; std::unique_ptr<base::DictionaryValue> GetProgress() const override; std::unique_ptr<base::DictionaryValue> GetResults() const override; @@ -73,7 +73,7 @@ // This is used to report parse failures back to the server. static std::unique_ptr<CommandInstance> FromJson( const base::Value* value, - const std::string& origin, + CommandOrigin origin, const CommandDictionary& dictionary, std::string* command_id, chromeos::ErrorPtr* error); @@ -84,20 +84,10 @@ // Sets the pointer to queue this command is part of. void SetCommandQueue(CommandQueue* queue) { queue_ = queue; } - // Values for command execution status. - static const char kStatusQueued[]; - static const char kStatusInProgress[]; - static const char kStatusPaused[]; - static const char kStatusError[]; - static const char kStatusDone[]; - static const char kStatusCancelled[]; - static const char kStatusAborted[]; - static const char kStatusExpired[]; - private: // Helper function to update the command status. // Used by Abort(), Cancel(), Done() methods. - void SetStatus(const std::string& status); + void SetStatus(CommandStatus status); // Helper method that removes this command from the command queue. // Note that since the command queue owns the lifetime of the command instance // object, removing a command from the queue will also destroy it. @@ -108,7 +98,7 @@ // Full command name as "<package_name>.<command_name>". std::string name_; // The origin of the command, either "local" or "cloud". - std::string origin_; + CommandOrigin origin_ = CommandOrigin::kLocal; // Command definition. const CommandDefinition* command_definition_; // Command parameters and their values. @@ -118,7 +108,7 @@ // Command results. ValueMap results_; // Current command status. - std::string status_ = kStatusQueued; + CommandStatus status_ = CommandStatus::kQueued; // Command observer for the command. std::vector<Observer*> observers_; // Pointer to the command queue this command instance is added to.
diff --git a/libweave/src/commands/command_instance_unittest.cc b/libweave/src/commands/command_instance_unittest.cc index 4a7972a..43465c3 100644 --- a/libweave/src/commands/command_instance_unittest.cc +++ b/libweave/src/commands/command_instance_unittest.cc
@@ -75,8 +75,8 @@ ValueMap params; params["phrase"] = str_prop.CreateValue(std::string("iPityDaFool"), nullptr); params["volume"] = int_prop.CreateValue(5, nullptr); - CommandInstance instance{ - "robot.speak", "cloud", dict_.FindCommand("robot.speak"), params}; + CommandInstance instance{"robot.speak", CommandOrigin::kCloud, + dict_.FindCommand("robot.speak"), params}; EXPECT_TRUE( instance.SetResults(*CreateDictionaryValue("{'foo': 239}"), nullptr)); @@ -84,19 +84,23 @@ EXPECT_EQ("", instance.GetID()); EXPECT_EQ("robot.speak", instance.GetName()); EXPECT_EQ("robotd", instance.GetCategory()); - EXPECT_EQ("cloud", instance.GetOrigin()); + EXPECT_EQ(CommandOrigin::kCloud, instance.GetOrigin()); EXPECT_JSON_EQ("{'phrase': 'iPityDaFool', 'volume': 5}", *instance.GetParameters()); EXPECT_JSON_EQ("{'foo': 239}", *instance.GetResults()); - CommandInstance instance2{ - "base.reboot", "local", dict_.FindCommand("base.reboot"), {}}; - EXPECT_EQ("local", instance2.GetOrigin()); + CommandInstance instance2{"base.reboot", + CommandOrigin::kLocal, + dict_.FindCommand("base.reboot"), + {}}; + EXPECT_EQ(CommandOrigin::kLocal, instance2.GetOrigin()); } TEST_F(CommandInstanceTest, SetID) { - CommandInstance instance{ - "base.reboot", "local", dict_.FindCommand("base.reboot"), {}}; + CommandInstance instance{"base.reboot", + CommandOrigin::kLocal, + dict_.FindCommand("base.reboot"), + {}}; instance.SetID("command_id"); EXPECT_EQ("command_id", instance.GetID()); } @@ -112,8 +116,8 @@ 'results': {} })"); std::string id; - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, &id, nullptr); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, &id, nullptr); EXPECT_EQ("abcd", id); EXPECT_EQ("abcd", instance->GetID()); EXPECT_EQ("robot.jump", instance->GetName()); @@ -124,8 +128,8 @@ TEST_F(CommandInstanceTest, FromJson_ParamsOmitted) { auto json = CreateDictionaryValue("{'name': 'base.reboot'}"); - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, nullptr, nullptr); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, nullptr, nullptr); EXPECT_EQ("base.reboot", instance->GetName()); EXPECT_EQ("robotd", instance->GetCategory()); EXPECT_JSON_EQ("{}", *instance->GetParameters()); @@ -134,8 +138,8 @@ TEST_F(CommandInstanceTest, FromJson_NotObject) { auto json = CreateValue("'string'"); chromeos::ErrorPtr error; - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, nullptr, &error); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, nullptr, &error); EXPECT_EQ(nullptr, instance.get()); EXPECT_EQ("json_object_expected", error->GetCode()); EXPECT_EQ("Command instance is not a JSON object", error->GetMessage()); @@ -144,8 +148,8 @@ TEST_F(CommandInstanceTest, FromJson_NameMissing) { auto json = CreateDictionaryValue("{'param': 'value'}"); chromeos::ErrorPtr error; - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, nullptr, &error); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, nullptr, &error); EXPECT_EQ(nullptr, instance.get()); EXPECT_EQ("parameter_missing", error->GetCode()); EXPECT_EQ("Command name is missing", error->GetMessage()); @@ -154,8 +158,8 @@ TEST_F(CommandInstanceTest, FromJson_UnknownCommand) { auto json = CreateDictionaryValue("{'name': 'robot.scream'}"); chromeos::ErrorPtr error; - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, nullptr, &error); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, nullptr, &error); EXPECT_EQ(nullptr, instance.get()); EXPECT_EQ("invalid_command_name", error->GetCode()); EXPECT_EQ("Unknown command received: robot.scream", error->GetMessage()); @@ -167,8 +171,8 @@ 'parameters': 'hello' })"); chromeos::ErrorPtr error; - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, nullptr, &error); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, nullptr, &error); EXPECT_EQ(nullptr, instance.get()); auto inner = error->GetInnerError(); EXPECT_EQ("json_object_expected", inner->GetCode()); @@ -186,8 +190,8 @@ } })"); chromeos::ErrorPtr error; - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, nullptr, &error); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, nullptr, &error); EXPECT_EQ(nullptr, instance.get()); auto first = error->GetFirstError(); EXPECT_EQ("out_of_range", first->GetCode()); @@ -209,8 +213,8 @@ }, 'results': {} })"); - auto instance = - CommandInstance::FromJson(json.get(), "cloud", dict_, nullptr, nullptr); + auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud, + dict_, nullptr, nullptr); EXPECT_TRUE(instance->SetProgress(*CreateDictionaryValue("{'progress': 15}"), nullptr)); EXPECT_TRUE(instance->SetProgress(*CreateDictionaryValue("{'progress': 15}"),
diff --git a/libweave/src/commands/command_manager.cc b/libweave/src/commands/command_manager.cc index 8f85647..6baab68 100644 --- a/libweave/src/commands/command_manager.cc +++ b/libweave/src/commands/command_manager.cc
@@ -107,8 +107,7 @@ std::string* id, chromeos::ErrorPtr* error) { auto command_instance = CommandInstance::FromJson( - &command, commands::attributes::kCommand_Visibility_Local, - GetCommandDictionary(), nullptr, error); + &command, CommandOrigin::kLocal, GetCommandDictionary(), nullptr, error); if (!command_instance) return false;
diff --git a/libweave/src/commands/command_queue_unittest.cc b/libweave/src/commands/command_queue_unittest.cc index dd644ac..cd91c3d 100644 --- a/libweave/src/commands/command_queue_unittest.cc +++ b/libweave/src/commands/command_queue_unittest.cc
@@ -23,8 +23,8 @@ std::unique_ptr<CommandInstance> CreateDummyCommandInstance( const std::string& name, const std::string& id) { - std::unique_ptr<CommandInstance> cmd{ - new CommandInstance{name, "local", &command_definition_, {}}}; + std::unique_ptr<CommandInstance> cmd{new CommandInstance{ + name, CommandOrigin::kLocal, &command_definition_, {}}}; cmd->SetID(id); return cmd; }
diff --git a/libweave/src/commands/dbus_command_proxy.cc b/libweave/src/commands/dbus_command_proxy.cc index 86450e2..1ad5d59 100644 --- a/libweave/src/commands/dbus_command_proxy.cc +++ b/libweave/src/commands/dbus_command_proxy.cc
@@ -8,6 +8,7 @@ #include <chromeos/dbus/exported_object_manager.h> #include "libweave/src/commands/dbus_conversion.h" +#include "weave/enum_to_string.h" using chromeos::dbus_utils::AsyncEventSequencer; using chromeos::dbus_utils::ExportedObjectManager; @@ -29,10 +30,10 @@ dbus_adaptor_.SetName(command_->GetName()); dbus_adaptor_.SetCategory(command_->GetCategory()); dbus_adaptor_.SetId(command_->GetID()); - dbus_adaptor_.SetStatus(command_->GetStatus()); + dbus_adaptor_.SetStatus(EnumToString(command_->GetStatus())); dbus_adaptor_.SetProgress( DictionaryToDBusVariantDictionary(*command_->GetProgress())); - dbus_adaptor_.SetOrigin(command_->GetOrigin()); + dbus_adaptor_.SetOrigin(EnumToString(command_->GetOrigin())); dbus_adaptor_.SetParameters( DictionaryToDBusVariantDictionary(*command_->GetParameters())); dbus_adaptor_.SetResults( @@ -48,7 +49,7 @@ } void DBusCommandProxy::OnStatusChanged() { - dbus_adaptor_.SetStatus(command_->GetStatus()); + dbus_adaptor_.SetStatus(EnumToString(command_->GetStatus())); } void DBusCommandProxy::OnProgressChanged() {
diff --git a/libweave/src/commands/dbus_command_proxy_unittest.cc b/libweave/src/commands/dbus_command_proxy_unittest.cc index a289cad..7ae2b32 100644 --- a/libweave/src/commands/dbus_command_proxy_unittest.cc +++ b/libweave/src/commands/dbus_command_proxy_unittest.cc
@@ -20,6 +20,8 @@ #include "libweave/src/commands/command_instance.h" #include "libweave/src/commands/unittest_utils.h" +#include "weave/enum_to_string.h" + namespace weave { using ::testing::AnyNumber; @@ -99,8 +101,8 @@ '_jumpType': '_withKick' } })"); - command_instance_ = - CommandInstance::FromJson(json.get(), "local", dict_, nullptr, nullptr); + command_instance_ = CommandInstance::FromJson( + json.get(), CommandOrigin::kLocal, dict_, nullptr, nullptr); command_instance_->SetID(kTestCommandId); // Set up a mock ExportedObject to be used with the DBus command proxy. @@ -144,6 +146,12 @@ return GetCommandProxy(); } + CommandStatus GetCommandStatus() const { + CommandStatus status; + EXPECT_TRUE(StringToEnum(GetCommandAdaptor()->GetStatus(), &status)); + return status; + } + std::unique_ptr<CommandInstance> command_instance_; CommandDictionary dict_; @@ -155,7 +163,7 @@ VariantDictionary params = { {"height", int32_t{53}}, {"_jumpType", std::string{"_withKick"}}, }; - EXPECT_EQ(CommandInstance::kStatusQueued, GetCommandAdaptor()->GetStatus()); + EXPECT_EQ(CommandStatus::kQueued, GetCommandStatus()); EXPECT_EQ(params, GetCommandAdaptor()->GetParameters()); EXPECT_EQ(VariantDictionary{}, GetCommandAdaptor()->GetProgress()); EXPECT_EQ(VariantDictionary{}, GetCommandAdaptor()->GetResults()); @@ -168,8 +176,7 @@ EXPECT_CALL(*mock_exported_object_command_, SendSignal(_)).Times(2); EXPECT_TRUE( GetCommandInterface()->SetProgress(nullptr, {{"progress", int32_t{10}}})); - EXPECT_EQ(CommandInstance::kStatusInProgress, - GetCommandAdaptor()->GetStatus()); + EXPECT_EQ(CommandStatus::kInProgress, GetCommandStatus()); VariantDictionary progress{{"progress", int32_t{10}}}; EXPECT_EQ(progress, GetCommandAdaptor()->GetProgress()); @@ -178,7 +185,7 @@ TEST_F(DBusCommandProxyTest, SetProgress_OutOfRange) { EXPECT_FALSE(GetCommandInterface()->SetProgress( nullptr, {{"progress", int32_t{110}}})); - EXPECT_EQ(CommandInstance::kStatusQueued, GetCommandAdaptor()->GetStatus()); + EXPECT_EQ(CommandStatus::kQueued, GetCommandStatus()); EXPECT_EQ(VariantDictionary{}, GetCommandAdaptor()->GetProgress()); } @@ -216,14 +223,13 @@ TEST_F(DBusCommandProxyTest, Abort) { EXPECT_CALL(*mock_exported_object_command_, SendSignal(_)).Times(1); GetCommandInterface()->Abort(); - EXPECT_EQ(CommandInstance::kStatusAborted, GetCommandAdaptor()->GetStatus()); + EXPECT_EQ(CommandStatus::kAborted, GetCommandStatus()); } TEST_F(DBusCommandProxyTest, Cancel) { EXPECT_CALL(*mock_exported_object_command_, SendSignal(_)).Times(1); GetCommandInterface()->Cancel(); - EXPECT_EQ(CommandInstance::kStatusCancelled, - GetCommandAdaptor()->GetStatus()); + EXPECT_EQ(CommandStatus::kCancelled, GetCommandStatus()); } TEST_F(DBusCommandProxyTest, Done) { @@ -231,7 +237,7 @@ // status: queued -> done EXPECT_CALL(*mock_exported_object_command_, SendSignal(_)).Times(1); GetCommandInterface()->Done(); - EXPECT_EQ(CommandInstance::kStatusDone, GetCommandAdaptor()->GetStatus()); + EXPECT_EQ(CommandStatus::kDone, GetCommandStatus()); } } // namespace weave
diff --git a/libweave/src/device_registration_info.cc b/libweave/src/device_registration_info.cc index 500761c..e733d1b 100644 --- a/libweave/src/device_registration_info.cc +++ b/libweave/src/device_registration_info.cc
@@ -786,7 +786,7 @@ chromeos::ErrorPtr error) { base::DictionaryValue command_patch; command_patch.SetString(commands::attributes::kCommand_State, - CommandInstance::kStatusAborted); + EnumToString(CommandStatus::kAborted)); if (error) { command_patch.SetString(commands::attributes::kCommand_ErrorCode, chromeos::string_utils::Join( @@ -997,8 +997,8 @@ std::string command_id; chromeos::ErrorPtr error; auto command_instance = CommandInstance::FromJson( - &command, commands::attributes::kCommand_Visibility_Cloud, - command_manager_->GetCommandDictionary(), &command_id, &error); + &command, CommandOrigin::kCloud, command_manager_->GetCommandDictionary(), + &command_id, &error); if (!command_instance) { LOG(WARNING) << "Failed to parse a command instance: " << command; if (!command_id.empty())