1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef DBUS_MOCK_OBJECT_PROXY_H_
6 #define DBUS_MOCK_OBJECT_PROXY_H_
10 #include "dbus/message.h"
11 #include "dbus/object_path.h"
12 #include "dbus/object_proxy.h"
13 #include "testing/gmock/include/gmock/gmock.h"
17 // Mock for ObjectProxy.
18 class MockObjectProxy
: public ObjectProxy
{
20 MockObjectProxy(Bus
* bus
,
21 const std::string
& service_name
,
22 const ObjectPath
& object_path
);
24 // GMock doesn't support the return type of scoped_ptr<> because scoped_ptr is
25 // uncopyable. This is a workaround which defines |MockCallMethodAndBlock| as
26 // a mock method and makes |CallMethodAndBlock| call the mocked method.
27 // Use |MockCallMethodAndBlock| for setting/testing expectations.
28 MOCK_METHOD2(MockCallMethodAndBlock
, Response
*(MethodCall
* method_call
,
30 virtual scoped_ptr
<Response
> CallMethodAndBlock(MethodCall
* method_call
,
31 int timeout_ms
) OVERRIDE
{
32 return scoped_ptr
<Response
>(MockCallMethodAndBlock(method_call
,
35 MOCK_METHOD3(CallMethod
, void(MethodCall
* method_call
,
37 ResponseCallback callback
));
38 MOCK_METHOD4(CallMethodWithErrorCallback
, void(MethodCall
* method_call
,
40 ResponseCallback callback
,
41 ErrorCallback error_callback
));
42 MOCK_METHOD4(ConnectToSignal
,
43 void(const std::string
& interface_name
,
44 const std::string
& signal_name
,
45 SignalCallback signal_callback
,
46 OnConnectedCallback on_connected_callback
));
47 MOCK_METHOD0(Detach
, void());
50 virtual ~MockObjectProxy();
55 #endif // DBUS_MOCK_OBJECT_PROXY_H_