| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef DBUS_MOCK_OBJECT_PROXY_H_ |
| #define DBUS_MOCK_OBJECT_PROXY_H_ |
| |
| #include <string> |
| |
| #include "dbus/message.h" |
| #include "dbus/object_path.h" |
| #include "dbus/object_proxy.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| |
| namespace dbus { |
| |
| // Mock for ObjectProxy. |
| class MockObjectProxy : public ObjectProxy { |
| public: |
| MockObjectProxy(Bus* bus, |
| const std::string& service_name, |
| const ObjectPath& object_path); |
| |
| // GMock doesn't support the return type of scoped_ptr<> because scoped_ptr is |
| // uncopyable. This is a workaround which defines |MockCallMethodAndBlock| as |
| // a mock method and makes |CallMethodAndBlock| call the mocked method. |
| // Use |MockCallMethodAndBlock| for setting/testing expectations. |
| MOCK_METHOD3(MockCallMethodAndBlockWithErrorDetails, |
| Response*(MethodCall* method_call, |
| int timeout_ms, |
| ScopedDBusError* error)); |
| scoped_ptr<Response> CallMethodAndBlockWithErrorDetails( |
| MethodCall* method_call, |
| int timeout_ms, |
| ScopedDBusError* error) override { |
| return scoped_ptr<Response>( |
| MockCallMethodAndBlockWithErrorDetails(method_call, timeout_ms, error)); |
| } |
| MOCK_METHOD2(MockCallMethodAndBlock, Response*(MethodCall* method_call, |
| int timeout_ms)); |
| scoped_ptr<Response> CallMethodAndBlock(MethodCall* method_call, |
| int timeout_ms) override { |
| return scoped_ptr<Response>(MockCallMethodAndBlock(method_call, |
| timeout_ms)); |
| } |
| MOCK_METHOD3(CallMethod, void(MethodCall* method_call, |
| int timeout_ms, |
| ResponseCallback callback)); |
| MOCK_METHOD4(CallMethodWithErrorCallback, void(MethodCall* method_call, |
| int timeout_ms, |
| ResponseCallback callback, |
| ErrorCallback error_callback)); |
| MOCK_METHOD4(ConnectToSignal, |
| void(const std::string& interface_name, |
| const std::string& signal_name, |
| SignalCallback signal_callback, |
| OnConnectedCallback on_connected_callback)); |
| MOCK_METHOD0(Detach, void()); |
| |
| protected: |
| ~MockObjectProxy() override; |
| }; |
| |
| } // namespace dbus |
| |
| #endif // DBUS_MOCK_OBJECT_PROXY_H_ |