blob: 563893f039c976745051423069403c4d83413607 [file] [log] [blame]
Darin Petkovd78ee7e2012-01-12 11:21:10 +01001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Chris Masoned7732e42011-05-20 11:08:56 -07002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ben Chanc45688b2014-07-02 23:50:45 -07005#ifndef SHILL_MOCK_ADAPTORS_H_
6#define SHILL_MOCK_ADAPTORS_H_
Chris Masoned7732e42011-05-20 11:08:56 -07007
8#include <string>
Alex Vakulenko8a532292014-06-16 17:18:44 -07009#include <vector>
Chris Masoned7732e42011-05-20 11:08:56 -070010
11#include <gmock/gmock.h>
12
13#include "shill/adaptor_interfaces.h"
Darin Petkove5bc2cb2011-12-07 14:47:32 +010014#include "shill/error.h"
Chris Masoned7732e42011-05-20 11:08:56 -070015
16namespace shill {
17
Chris Masonec6c6c132011-06-30 11:29:52 -070018// These are the functions that a Device adaptor must support
19class DeviceMockAdaptor : public DeviceAdaptorInterface {
20 public:
21 static const char kRpcId[];
Chris Masone4e851612011-07-01 10:46:53 -070022 static const char kRpcConnId[];
Chris Masonec6c6c132011-06-30 11:29:52 -070023
24 DeviceMockAdaptor();
Ben Chan5ea763b2014-08-13 11:07:54 -070025 ~DeviceMockAdaptor() override;
Paul Stewart1e006c62015-06-16 12:29:06 -070026 const std::string& GetRpcIdentifier() override;
27 const std::string& GetRpcConnectionIdentifier() override;
Chris Masonec6c6c132011-06-30 11:29:52 -070028
Paul Stewart1e006c62015-06-16 12:29:06 -070029 MOCK_METHOD2(EmitBoolChanged, void(const std::string& name, bool value));
30 MOCK_METHOD2(EmitUintChanged, void(const std::string& name, uint32_t value));
Ben Chan7fab8972014-08-10 17:14:46 -070031 MOCK_METHOD2(EmitUint16Changed,
Paul Stewart1e006c62015-06-16 12:29:06 -070032 void(const std::string& name, uint16_t value));
33 MOCK_METHOD2(EmitIntChanged, void(const std::string& name, int value));
34 MOCK_METHOD2(EmitStringChanged, void(const std::string& name,
35 const std::string& value));
36 MOCK_METHOD2(EmitStringmapChanged, void(const std::string& name,
37 const Stringmap& value));
38 MOCK_METHOD2(EmitStringmapsChanged, void(const std::string& name,
39 const Stringmaps& value));
40 MOCK_METHOD2(EmitStringsChanged, void(const std::string& name,
41 const Strings& value));
42 MOCK_METHOD2(EmitKeyValueStoreChanged, void(const std::string& name,
43 const KeyValueStore& value));
Christopher Wiley674598d2014-12-12 10:21:39 -080044 MOCK_METHOD2(EmitRpcIdentifierChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -070045 void(const std::string& name,
46 const std::string& value));
Paul Stewartd4f26482014-04-25 19:12:03 -070047 MOCK_METHOD2(EmitRpcIdentifierArrayChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -070048 void(const std::string& name,
49 const std::vector<std::string>& value));
Chris Masonec6c6c132011-06-30 11:29:52 -070050
51 private:
Darin Petkova9b1fed2012-02-29 11:49:05 +010052 const std::string rpc_id_;
53 const std::string rpc_conn_id_;
Chris Masonec6c6c132011-06-30 11:29:52 -070054};
55
56// These are the functions that a IPConfig adaptor must support
57class IPConfigMockAdaptor : public IPConfigAdaptorInterface {
58 public:
59 static const char kRpcId[];
60
61 IPConfigMockAdaptor();
Ben Chan5ea763b2014-08-13 11:07:54 -070062 ~IPConfigMockAdaptor() override;
Paul Stewart1e006c62015-06-16 12:29:06 -070063 const std::string& GetRpcIdentifier() override;
Chris Masonec6c6c132011-06-30 11:29:52 -070064
65 MOCK_METHOD2(EmitBoolChanged, void(const std::string&, bool));
Ben Chan7fab8972014-08-10 17:14:46 -070066 MOCK_METHOD2(EmitUintChanged, void(const std::string&, uint32_t));
Chris Masonec6c6c132011-06-30 11:29:52 -070067 MOCK_METHOD2(EmitIntChanged, void(const std::string&, int));
68 MOCK_METHOD2(EmitStringChanged, void(const std::string&, const std::string&));
mukesh agrawal7aed61c2013-04-22 16:01:24 -070069 MOCK_METHOD2(EmitStringsChanged,
70 void(const std::string&, const std::vector<std::string>&));
Chris Masonec6c6c132011-06-30 11:29:52 -070071
72 private:
Darin Petkova9b1fed2012-02-29 11:49:05 +010073 const std::string rpc_id_;
Chris Masonec6c6c132011-06-30 11:29:52 -070074};
75
Chris Masoned7732e42011-05-20 11:08:56 -070076// These are the functions that a Manager adaptor must support
77class ManagerMockAdaptor : public ManagerAdaptorInterface {
78 public:
Chris Masone95207da2011-06-29 16:50:49 -070079 static const char kRpcId[];
80
81 ManagerMockAdaptor();
Ben Chan5ea763b2014-08-13 11:07:54 -070082 ~ManagerMockAdaptor() override;
Paul Stewart1e006c62015-06-16 12:29:06 -070083 const std::string& GetRpcIdentifier() override;
Chris Masone95207da2011-06-29 16:50:49 -070084
Chris Masoned7732e42011-05-20 11:08:56 -070085 MOCK_METHOD0(UpdateRunning, void(void));
Chris Masoned0ceb8c2011-06-02 10:05:39 -070086 MOCK_METHOD2(EmitBoolChanged, void(const std::string&, bool));
Ben Chan7fab8972014-08-10 17:14:46 -070087 MOCK_METHOD2(EmitUintChanged, void(const std::string&, uint32_t));
Chris Masoned0ceb8c2011-06-02 10:05:39 -070088 MOCK_METHOD2(EmitIntChanged, void(const std::string&, int));
89 MOCK_METHOD2(EmitStringChanged, void(const std::string&, const std::string&));
Gaurav Shah435de2c2011-11-17 19:01:07 -080090 MOCK_METHOD2(EmitStringsChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -070091 void(const std::string&, const std::vector<std::string>&));
Paul Stewart49739c02012-08-08 17:24:03 -070092 MOCK_METHOD2(EmitRpcIdentifierChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -070093 void(const std::string&, const std::string&));
mukesh agrawal32399322011-09-01 10:53:43 -070094 MOCK_METHOD2(EmitRpcIdentifierArrayChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -070095 void(const std::string&, const std::vector<std::string>&));
Chris Masoned0ceb8c2011-06-02 10:05:39 -070096
97 MOCK_METHOD1(EmitStateChanged, void(const std::string&));
Chris Masone95207da2011-06-29 16:50:49 -070098
99 private:
Darin Petkova9b1fed2012-02-29 11:49:05 +0100100 const std::string rpc_id_;
Chris Masoned7732e42011-05-20 11:08:56 -0700101};
102
Chris Masonec6c6c132011-06-30 11:29:52 -0700103// These are the functions that a Profile adaptor must support
104class ProfileMockAdaptor : public ProfileAdaptorInterface {
105 public:
106 static const char kRpcId[];
107
108 ProfileMockAdaptor();
Ben Chan5ea763b2014-08-13 11:07:54 -0700109 ~ProfileMockAdaptor() override;
Paul Stewart1e006c62015-06-16 12:29:06 -0700110 const std::string& GetRpcIdentifier() override;
Chris Masonec6c6c132011-06-30 11:29:52 -0700111
112 MOCK_METHOD2(EmitBoolChanged, void(const std::string&, bool));
Ben Chan7fab8972014-08-10 17:14:46 -0700113 MOCK_METHOD2(EmitUintChanged, void(const std::string&, uint32_t));
Chris Masonec6c6c132011-06-30 11:29:52 -0700114 MOCK_METHOD2(EmitIntChanged, void(const std::string&, int));
115 MOCK_METHOD2(EmitStringChanged, void(const std::string&, const std::string&));
116
117 private:
Darin Petkova9b1fed2012-02-29 11:49:05 +0100118 const std::string rpc_id_;
119};
120
121// These are the functions that a Task adaptor must support
122class RPCTaskMockAdaptor : public RPCTaskAdaptorInterface {
123 public:
124 static const char kRpcId[];
125 static const char kRpcInterfaceId[];
126 static const char kRpcConnId[];
127
128 RPCTaskMockAdaptor();
Ben Chan5ea763b2014-08-13 11:07:54 -0700129 ~RPCTaskMockAdaptor() override;
Darin Petkova9b1fed2012-02-29 11:49:05 +0100130
Paul Stewart1e006c62015-06-16 12:29:06 -0700131 const std::string& GetRpcIdentifier() override;
132 const std::string& GetRpcInterfaceIdentifier() override;
133 const std::string& GetRpcConnectionIdentifier() override;
Darin Petkova9b1fed2012-02-29 11:49:05 +0100134
135 private:
136 const std::string rpc_id_;
137 const std::string rpc_interface_id_;
138 const std::string rpc_conn_id_;
Chris Masonec6c6c132011-06-30 11:29:52 -0700139};
140
Chris Masoned7732e42011-05-20 11:08:56 -0700141// These are the functions that a Service adaptor must support
142class ServiceMockAdaptor : public ServiceAdaptorInterface {
143 public:
Chris Masone95207da2011-06-29 16:50:49 -0700144 static const char kRpcId[];
145
146 ServiceMockAdaptor();
Ben Chan5ea763b2014-08-13 11:07:54 -0700147 ~ServiceMockAdaptor() override;
Paul Stewart1e006c62015-06-16 12:29:06 -0700148 const std::string& GetRpcIdentifier() override;
Chris Masone95207da2011-06-29 16:50:49 -0700149
Darin Petkov9cb02682012-01-28 00:17:38 +0100150 MOCK_METHOD0(UpdateConnected, void());
Paul Stewart1e006c62015-06-16 12:29:06 -0700151 MOCK_METHOD2(EmitBoolChanged, void(const std::string& name, bool value));
152 MOCK_METHOD2(EmitUint8Changed, void(const std::string& name, uint8_t value));
Ben Chan7fab8972014-08-10 17:14:46 -0700153 MOCK_METHOD2(EmitUint16Changed,
Paul Stewart1e006c62015-06-16 12:29:06 -0700154 void(const std::string& name, uint16_t value));
155 MOCK_METHOD2(EmitUint16sChanged, void(const std::string& name,
156 const Uint16s& value));
157 MOCK_METHOD2(EmitUintChanged, void(const std::string& name, uint32_t value));
158 MOCK_METHOD2(EmitIntChanged, void(const std::string& name, int value));
Paul Stewart1e3bc4962012-09-14 12:20:22 -0700159 MOCK_METHOD2(EmitRpcIdentifierChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -0700160 void(const std::string& name, const std::string& value));
Darin Petkov9cb02682012-01-28 00:17:38 +0100161 MOCK_METHOD2(EmitStringChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -0700162 void(const std::string& name, const std::string& value));
Darin Petkov9cb02682012-01-28 00:17:38 +0100163 MOCK_METHOD2(EmitStringmapChanged,
Paul Stewart1e006c62015-06-16 12:29:06 -0700164 void(const std::string& name, const Stringmap& value));
Chris Masone95207da2011-06-29 16:50:49 -0700165
166 private:
Darin Petkova9b1fed2012-02-29 11:49:05 +0100167 const std::string rpc_id_;
Chris Masoned7732e42011-05-20 11:08:56 -0700168};
169
Prabhu Kaliamoorthi127b3412014-10-16 13:00:25 +0200170#ifndef DISABLE_VPN
171class ThirdPartyVpnMockAdaptor : public ThirdPartyVpnAdaptorInterface {
172 public:
173 ThirdPartyVpnMockAdaptor();
174 ~ThirdPartyVpnMockAdaptor() override;
175
Paul Stewart1e006c62015-06-16 12:29:06 -0700176 MOCK_METHOD1(EmitPacketReceived, void(const std::vector<uint8_t>& packet));
Prabhu Kaliamoorthi127b3412014-10-16 13:00:25 +0200177
178 MOCK_METHOD1(EmitPlatformMessage, void(uint32_t message));
179};
180#endif
181
Chris Masoned7732e42011-05-20 11:08:56 -0700182} // namespace shill
Ben Chanc45688b2014-07-02 23:50:45 -0700183
184#endif // SHILL_MOCK_ADAPTORS_H_