buffet: Allow setting command results.

Next step in command results support: now there is
CommandInstance::SetResults method which allows results
modifications.

BUG=chromium:435607
TEST=cros_workon_make --test buffet

Change-Id: I1f5da9c3613a2996cea3f65f07945cc64bfeda2e
Reviewed-on: https://chromium-review.googlesource.com/231337
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Anton Muhin <antonm@chromium.org>
Commit-Queue: Anton Muhin <antonm@chromium.org>
diff --git a/buffet/commands/command_instance_unittest.cc b/buffet/commands/command_instance_unittest.cc
index d5afc70..420361e 100644
--- a/buffet/commands/command_instance_unittest.cc
+++ b/buffet/commands/command_instance_unittest.cc
@@ -8,6 +8,7 @@
 
 #include "buffet/commands/command_dictionary.h"
 #include "buffet/commands/prop_types.h"
+#include "buffet/commands/schema_utils.h"
 #include "buffet/commands/unittest_utils.h"
 
 using buffet::unittests::CreateDictionaryValue;
@@ -65,26 +66,36 @@
 
 }  // anonymous namespace
 
-TEST(CommandInstance, Test) {
-  buffet::native_types::Object params;
+TEST_F(CommandInstanceTest, Test) {
+  buffet::StringPropType str_prop;
   buffet::IntPropType int_prop;
-  buffet::DoublePropType dbl_prop;
-  params.insert(std::make_pair("freq", dbl_prop.CreateValue(800.5, nullptr)));
-  params.insert(std::make_pair("volume", int_prop.CreateValue(100, nullptr)));
-  buffet::CommandInstance instance("robot._beep", "robotd", params);
+  buffet::native_types::Object params;
+  params["phrase"] = str_prop.CreateValue(std::string("iPityDaFool"),
+                                          nullptr);
+  params["volume"] = int_prop.CreateValue(5, nullptr);
+  buffet::CommandInstance instance("robot.speak",
+                                   dict_.FindCommand("robot.speak"),
+                                   params);
+
+  buffet::native_types::Object results;
+  results["foo"] = int_prop.CreateValue(239, nullptr);
+  instance.SetResults(results);
 
   EXPECT_EQ("", instance.GetID());
-  EXPECT_EQ("robot._beep", instance.GetName());
+  EXPECT_EQ("robot.speak", instance.GetName());
   EXPECT_EQ("robotd", instance.GetCategory());
   EXPECT_EQ(params, instance.GetParameters());
-  EXPECT_DOUBLE_EQ(800.5,
-                   instance.FindParameter("freq")->GetDouble()->GetValue());
-  EXPECT_EQ(100, instance.FindParameter("volume")->GetInt()->GetValue());
+  EXPECT_EQ("iPityDaFool",
+            instance.FindParameter("phrase")->GetString()->GetValue());
+  EXPECT_EQ(5, instance.FindParameter("volume")->GetInt()->GetValue());
   EXPECT_EQ(nullptr, instance.FindParameter("blah").get());
+  EXPECT_EQ(results, instance.GetResults());
 }
 
-TEST(CommandInstance, SetID) {
-  buffet::CommandInstance instance("robot._beep", "robotd", {});
+TEST_F(CommandInstanceTest, SetID) {
+  buffet::CommandInstance instance("robot._beep",
+                                   dict_.FindCommand("robot.speak"),
+                                   {});
   instance.SetID("command_id");
   EXPECT_EQ("command_id", instance.GetID());
 }