Remove Command::Done and add verification of Command state transitions
BUG:23906692
Change-Id: I1934ad70e1918cc5b40ac07ee1e1ccfee406867e
Reviewed-on: https://weave-review.googlesource.com/1259
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/libweave/src/commands/command_instance_unittest.cc b/libweave/src/commands/command_instance_unittest.cc
index f783ca7..7c2536b 100644
--- a/libweave/src/commands/command_instance_unittest.cc
+++ b/libweave/src/commands/command_instance_unittest.cc
@@ -212,15 +212,37 @@
EXPECT_TRUE(instance->SetResults(*CreateDictionaryValue("{'testResult': 17}"),
nullptr));
- ErrorPtr error;
- Error::AddTo(&error, FROM_HERE, "DOMAIN", "CODE", "MESSAGE");
- instance->Abort(error.get());
-
json->MergeDictionary(CreateDictionaryValue(R"({
'id': 'testId',
'progress': {'progress': 15},
+ 'state': 'done',
+ 'results': {'testResult': 17}
+ })").get());
+
+ auto converted = instance->ToJson();
+ EXPECT_PRED2([](const base::Value& val1,
+ const base::Value& val2) { return val1.Equals(&val2); },
+ *json, *converted);
+}
+
+TEST_F(CommandInstanceTest, ToJsonError) {
+ auto json = CreateDictionaryValue(R"({
+ 'name': 'base.reboot',
+ 'parameters': {}
+ })");
+ auto instance = CommandInstance::FromJson(json.get(), CommandOrigin::kCloud,
+ dict_, nullptr, nullptr);
+ instance->SetID("testId");
+
+ ErrorPtr error;
+ Error::AddTo(&error, FROM_HERE, "DOMAIN", "CODE", "MESSAGE");
+ instance->Abort(error.get(), nullptr);
+
+ json->MergeDictionary(CreateDictionaryValue(R"({
+ 'id': 'testId',
'state': 'aborted',
- 'results': {'testResult': 17},
+ 'progress': {},
+ 'results': {},
'error': {'code': 'CODE', 'message': 'MESSAGE'}
})").get());