Remove weave Command::ToJson method

BUG:24267885
Change-Id: I4c0c9390380327c3d0cdaa20a520c7a5a41236dd
Reviewed-on: https://weave-review.googlesource.com/1258
Reviewed-by: Alex Vakulenko <avakulenko@google.com>
diff --git a/libweave/include/weave/command.h b/libweave/include/weave/command.h
index eb4914f..b8bbbd7 100644
--- a/libweave/include/weave/command.h
+++ b/libweave/include/weave/command.h
@@ -67,9 +67,6 @@
   // Marks the command as completed successfully.
   virtual void Done() = 0;
 
-  // Returns JSON representation of the command.
-  virtual std::unique_ptr<base::DictionaryValue> ToJson() const = 0;
-
  protected:
   virtual ~Command() = default;
 };
diff --git a/libweave/include/weave/test/mock_command.h b/libweave/include/weave/test/mock_command.h
index b856140..07fe4b3 100644
--- a/libweave/include/weave/test/mock_command.h
+++ b/libweave/include/weave/test/mock_command.h
@@ -30,15 +30,13 @@
   MOCK_CONST_METHOD0(MockGetResults, const std::string&());
   MOCK_METHOD2(SetProgress, bool(const base::DictionaryValue&, ErrorPtr*));
   MOCK_METHOD2(SetResults, bool(const base::DictionaryValue&, ErrorPtr*));
-  MOCK_METHOD0(Abort, void());
+  MOCK_METHOD1(Abort, void(const Error*));
   MOCK_METHOD0(Cancel, void());
   MOCK_METHOD0(Done, void());
-  MOCK_CONST_METHOD0(MockToJson, const std::string&());
 
   std::unique_ptr<base::DictionaryValue> GetParameters() const override;
   std::unique_ptr<base::DictionaryValue> GetProgress() const override;
   std::unique_ptr<base::DictionaryValue> GetResults() const override;
-  std::unique_ptr<base::DictionaryValue> ToJson() const override;
 };
 
 }  // namespace test
diff --git a/libweave/src/commands/command_instance.h b/libweave/src/commands/command_instance.h
index c2a79a8..0bc3c0f 100644
--- a/libweave/src/commands/command_instance.h
+++ b/libweave/src/commands/command_instance.h
@@ -52,7 +52,6 @@
   ~CommandInstance() override;
 
   // Command overrides.
-  std::unique_ptr<base::DictionaryValue> ToJson() const override;
   const std::string& GetID() const override;
   const std::string& GetName() const override;
   CommandStatus GetStatus() const override;
@@ -88,6 +87,8 @@
       std::string* command_id,
       ErrorPtr* error);
 
+  std::unique_ptr<base::DictionaryValue> ToJson() const;
+
   // Sets the command ID (normally done by CommandQueue when the command
   // instance is added to it).
   void SetID(const std::string& id) { id_ = id; }
diff --git a/libweave/src/privet/cloud_delegate.cc b/libweave/src/privet/cloud_delegate.cc
index 309876a..f7a803e 100644
--- a/libweave/src/privet/cloud_delegate.cc
+++ b/libweave/src/privet/cloud_delegate.cc
@@ -31,7 +31,8 @@
 
 const int kMaxDeviceRegistrationTimeMinutes = 5;
 
-Command* ReturnNotFound(const std::string& command_id, ErrorPtr* error) {
+CommandInstance* ReturnNotFound(const std::string& command_id,
+                                ErrorPtr* error) {
   Error::AddToPrintf(error, FROM_HERE, errors::kDomain, errors::kNotFound,
                      "Command not found, ID='%s'", command_id.c_str());
   return nullptr;
@@ -300,9 +301,9 @@
         backoff_entry_.GetTimeUntilRelease());
   }
 
-  Command* GetCommandInternal(const std::string& command_id,
-                              const UserInfo& user_info,
-                              ErrorPtr* error) const {
+  CommandInstance* GetCommandInternal(const std::string& command_id,
+                                      const UserInfo& user_info,
+                                      ErrorPtr* error) const {
     if (user_info.scope() != AuthScope::kOwner) {
       auto it = command_owners_.find(command_id);
       if (it == command_owners_.end())
diff --git a/libweave/src/test/mock_command.cc b/libweave/src/test/mock_command.cc
index 43b528b..98136f2 100644
--- a/libweave/src/test/mock_command.cc
+++ b/libweave/src/test/mock_command.cc
@@ -26,9 +26,5 @@
   return CreateDictionaryValue(MockGetResults());
 }
 
-std::unique_ptr<base::DictionaryValue> MockCommand::ToJson() const {
-  return CreateDictionaryValue(MockToJson());
-}
-
 }  // namespace test
 }  // namespace weave
diff --git a/libweave/src/weave_unittest.cc b/libweave/src/weave_unittest.cc
index 458a620..594103e 100644
--- a/libweave/src/weave_unittest.cc
+++ b/libweave/src/weave_unittest.cc
@@ -14,6 +14,7 @@
 #include <weave/provider/test/mock_http_server.h>
 #include <weave/provider/test/mock_network.h>
 #include <weave/provider/test/mock_wifi.h>
+#include <weave/test/mock_command.h>
 #include <weave/test/mock_device.h>
 #include <weave/test/unittest_utils.h>
 
@@ -263,10 +264,11 @@
   std::unique_ptr<weave::Device> device_;
 };
 
-TEST_F(WeaveTest, MockDevice) {
+TEST_F(WeaveTest, Mocks) {
   // Test checks if mock implements entire interface and mock can be
   // instantiated.
   test::MockDevice device;
+  test::MockCommand command;
 }
 
 TEST_F(WeaveTest, StartMinimal) {