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())