buffet: Remove dbus_command_proxy_unittest.cc as irrelevant
Tests have a lot of unrelated dependencies and tests more than they
should.
BUG=brillo:1245, brillo:1263
TEST='FEATURES=test emerge-gizmo buffet'
Change-Id: I33a851543b08ff421cb19fc063a440616170f99e
Reviewed-on: https://chromium-review.googlesource.com/288254
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/buffet.gyp b/buffet/buffet.gyp
index 7cd6db0..2e6cd91 100644
--- a/buffet/buffet.gyp
+++ b/buffet/buffet.gyp
@@ -193,7 +193,6 @@
'../libweave/src/commands/command_instance_unittest.cc',
'../libweave/src/commands/command_manager_unittest.cc',
'../libweave/src/commands/command_queue_unittest.cc',
- '../libweave/src/commands/dbus_command_dispatcher_unittest.cc',
'../libweave/src/commands/dbus_command_proxy_unittest.cc',
'../libweave/src/commands/dbus_conversion_unittest.cc',
'../libweave/src/commands/object_schema_unittest.cc',
diff --git a/libweave/src/commands/dbus_command_dispatcher_unittest.cc b/libweave/src/commands/dbus_command_dispatcher_unittest.cc
deleted file mode 100644
index 612605f..0000000
--- a/libweave/src/commands/dbus_command_dispatcher_unittest.cc
+++ /dev/null
@@ -1,216 +0,0 @@
-// Copyright 2014 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "libweave/src/commands/dbus_command_dispatcher.h"
-
-#include <memory>
-#include <string>
-
-#include <chromeos/dbus/exported_object_manager.h>
-#include <dbus/mock_bus.h>
-#include <dbus/mock_exported_object.h>
-#include <dbus/object_manager.h>
-#include <dbus/object_path.h>
-#include <gtest/gtest.h>
-
-#include "buffet/dbus_constants.h"
-#include "libweave/src/commands/command_dictionary.h"
-#include "libweave/src/commands/command_queue.h"
-#include "libweave/src/commands/dbus_command_proxy.h"
-#include "libweave/src/commands/unittest_utils.h"
-
-namespace weave {
-
-using chromeos::dbus_utils::AsyncEventSequencer;
-using testing::_;
-using testing::AnyNumber;
-using testing::InSequence;
-using testing::Invoke;
-using testing::Return;
-using unittests::CreateDictionaryValue;
-
-namespace {
-const char kCommandCategory[] = "test_category";
-
-} // anonymous namespace
-
-class DBusCommandDispacherTest : public testing::Test, public Commands {
- public:
- void AddOnCommandAddedCallback(const OnCommandCallback& callback) override {
- command_queue_.AddOnCommandAddedCallback(callback);
- }
-
- void AddOnCommandRemovedCallback(const OnCommandCallback& callback) override {
- command_queue_.AddOnCommandRemovedCallback(callback);
- }
-
- MOCK_METHOD4(AddCommand,
- bool(const base::DictionaryValue&,
- UserRole,
- std::string*,
- chromeos::ErrorPtr*));
-
- Command* FindCommand(const std::string& id) override {
- return command_queue_.Find(id);
- }
-
- void SetUp() override {
- command_queue_.SetNowForTest(base::Time::Max());
-
- const dbus::ObjectPath kExportedObjectManagerPath("/test/om_path");
- std::string cmd_path = buffet::kCommandServicePathPrefix;
- cmd_path += "1";
- const dbus::ObjectPath kCmdObjPath(cmd_path);
-
- dbus::Bus::Options options;
- options.bus_type = dbus::Bus::SYSTEM;
- bus_ = new dbus::MockBus(options);
- // By default, don't worry about threading assertions.
- EXPECT_CALL(*bus_, AssertOnOriginThread()).Times(AnyNumber());
- EXPECT_CALL(*bus_, AssertOnDBusThread()).Times(AnyNumber());
- // Use a mock exported object manager.
- mock_exported_object_manager_ =
- new dbus::MockExportedObject(bus_.get(), kExportedObjectManagerPath);
- EXPECT_CALL(*bus_, GetExportedObject(kExportedObjectManagerPath))
- .WillRepeatedly(Return(mock_exported_object_manager_.get()));
- EXPECT_CALL(*mock_exported_object_manager_, ExportMethod(_, _, _, _))
- .Times(AnyNumber());
- om_.reset(new chromeos::dbus_utils::ExportedObjectManager(
- bus_.get(), kExportedObjectManagerPath));
- om_->RegisterAsync(AsyncEventSequencer::GetDefaultCompletionAction());
- command_dispatcher_.reset(new DBusCommandDispacher(om_->AsWeakPtr(), this));
- // Use a mock exported object for command proxy.
- mock_exported_command_proxy_ =
- new dbus::MockExportedObject(bus_.get(), kCmdObjPath);
- EXPECT_CALL(*bus_, GetExportedObject(kCmdObjPath))
- .WillRepeatedly(Return(mock_exported_command_proxy_.get()));
- EXPECT_CALL(*mock_exported_command_proxy_, ExportMethod(_, _, _, _))
- .WillRepeatedly(Invoke(MockExportMethod));
-
- auto json = CreateDictionaryValue(R"({
- 'base': {
- 'reboot': {
- 'parameters': {'delay': 'integer'},
- 'results': {}
- },
- 'shutdown': {
- 'parameters': {},
- 'results': {},
- 'progress': {'progress': 'integer'}
- }
- }
- })");
- CHECK(dictionary_.LoadCommands(*json, kCommandCategory, nullptr, nullptr))
- << "Failed to load command dictionary";
- }
-
- void TearDown() override {
- EXPECT_CALL(*mock_exported_object_manager_, Unregister()).Times(1);
- om_.reset();
- bus_ = nullptr;
- }
-
- static void MockExportMethod(
- const std::string& interface_name,
- const std::string& method_name,
- dbus::ExportedObject::MethodCallCallback method_call_callback,
- dbus::ExportedObject::OnExportedCallback on_exported_callback) {
- on_exported_callback.Run(interface_name, method_name, true);
- }
-
- void AddNewCommand(const std::string& json, const std::string& id) {
- auto command_instance =
- CommandInstance::FromJson(CreateDictionaryValue(json.c_str()).get(),
- "cloud", dictionary_, nullptr, nullptr);
- command_instance->SetID(id);
- // Two interfaces are added - Command and Properties.
- EXPECT_CALL(*mock_exported_object_manager_, SendSignal(_)).Times(2);
- command_queue_.Add(std::move(command_instance));
- }
-
- DBusCommandProxy* FindProxy(CommandInstance* command_instance) {
- CHECK_EQ(command_instance->observers_.size(), 1U);
- return static_cast<DBusCommandProxy*>(command_instance->observers_[0]);
- }
-
- void FinishCommand(DBusCommandProxy* proxy) { proxy->Done(); }
-
- void SetProgress(DBusCommandProxy* proxy, const ValueMap& progress) {
- EXPECT_TRUE(proxy->SetProgress(nullptr, ObjectToDBusVariant(progress)));
- }
-
- scoped_refptr<dbus::MockBus> bus_;
- scoped_refptr<dbus::MockExportedObject> mock_exported_object_manager_;
- scoped_refptr<dbus::MockExportedObject> mock_exported_command_proxy_;
- std::unique_ptr<chromeos::dbus_utils::ExportedObjectManager> om_;
- CommandDictionary dictionary_;
- std::unique_ptr<DBusCommandDispacher> command_dispatcher_;
- CommandQueue command_queue_;
-};
-
-TEST_F(DBusCommandDispacherTest, Test_Command_Base_Shutdown) {
- const std::string id = "id0000";
- AddNewCommand("{'name':'base.shutdown'}", id);
- CommandInstance* command_instance = command_queue_.Find(id);
- ASSERT_NE(nullptr, command_instance);
- DBusCommandProxy* command_proxy = FindProxy(command_instance);
- ASSERT_NE(nullptr, command_proxy);
- EXPECT_EQ(CommandInstance::kStatusQueued, command_instance->GetStatus());
-
- // Two properties are set, Progress = 50%, Status = "inProgress"
- EXPECT_CALL(*mock_exported_command_proxy_, SendSignal(_)).Times(2);
- ValueMap progress{{"progress", unittests::make_int_prop_value(50)}};
- SetProgress(command_proxy, progress);
- EXPECT_EQ(CommandInstance::kStatusInProgress, command_instance->GetStatus());
- EXPECT_JSON_EQ("{'progress': 50}", *command_instance->GetProgress());
-
- // Command must be removed from the queue and proxy destroyed after calling
- // FinishCommand().
- // One property is set, Status = "done"
- EXPECT_CALL(*mock_exported_command_proxy_, SendSignal(_)).Times(1);
- // D-Bus command proxy is going away.
- EXPECT_CALL(*mock_exported_command_proxy_, Unregister()).Times(1);
- // Two interfaces are being removed on the D-Bus command object.
- EXPECT_CALL(*mock_exported_object_manager_, SendSignal(_)).Times(2);
- FinishCommand(command_proxy);
-
- EXPECT_EQ(nullptr, command_queue_.Find(id));
-}
-
-TEST_F(DBusCommandDispacherTest, Test_Command_Base_Reboot) {
- const std::string id = "id0001";
- AddNewCommand(R"({
- 'name': 'base.reboot',
- 'parameters': {
- 'delay': 20
- }
- })",
- id);
- CommandInstance* command_instance = command_queue_.Find(id);
- ASSERT_NE(nullptr, command_instance);
- DBusCommandProxy* command_proxy = FindProxy(command_instance);
- ASSERT_NE(nullptr, command_proxy);
- EXPECT_EQ(CommandInstance::kStatusQueued, command_instance->GetStatus());
-
- // One property is set, Status = "inProgress"
- EXPECT_CALL(*mock_exported_command_proxy_, SendSignal(_)).Times(1);
- ValueMap progress{};
- SetProgress(command_proxy, progress);
- EXPECT_EQ(CommandInstance::kStatusInProgress, command_instance->GetStatus());
- EXPECT_JSON_EQ("{}", *command_instance->GetProgress());
-
- // Command must be removed from the queue and proxy destroyed after calling
- // FinishCommand().
- // One property is set, Status = "done"
- EXPECT_CALL(*mock_exported_command_proxy_, SendSignal(_)).Times(1);
- // D-Bus command proxy is going away.
- EXPECT_CALL(*mock_exported_command_proxy_, Unregister()).Times(1);
- // Two interfaces are being removed on the D-Bus command object.
- EXPECT_CALL(*mock_exported_object_manager_, SendSignal(_)).Times(2);
- FinishCommand(command_proxy);
-
- EXPECT_EQ(nullptr, command_queue_.Find(id));
-}
-
-} // namespace weave