1 //
2 // Copyright (C) 2012 The Android Open Source Project
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 //      http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 #ifndef SHILL_NICE_MOCK_CONTROL_H_
18 #define SHILL_NICE_MOCK_CONTROL_H_
19 
20 #include <string>
21 
22 #include <base/macros.h>
23 #include <gmock/gmock.h>
24 
25 #include "shill/control_interface.h"
26 
27 namespace shill {
28 // An implementation of the Shill RPC-channel-interface-factory interface that
29 // returns nice mocks.
30 class NiceMockControl : public ControlInterface {
31  public:
32   NiceMockControl();
33   ~NiceMockControl() override;
34 
RegisterManagerObject(Manager * manager,const base::Closure & registration_done_callback)35   void RegisterManagerObject(
36       Manager* manager,
37       const base::Closure& registration_done_callback) override {};
38 
39   // Each of these can be called once.  Ownership of the appropriate
40   // interface pointer is given up upon call.
41   DeviceAdaptorInterface* CreateDeviceAdaptor(Device* device) override;
42   IPConfigAdaptorInterface* CreateIPConfigAdaptor(IPConfig* config) override;
43   ManagerAdaptorInterface* CreateManagerAdaptor(Manager* manager) override;
44   ProfileAdaptorInterface* CreateProfileAdaptor(Profile* profile) override;
45   RPCTaskAdaptorInterface* CreateRPCTaskAdaptor(RPCTask* task) override;
46   ServiceAdaptorInterface* CreateServiceAdaptor(Service* service) override;
47 #ifndef DISABLE_VPN
48   ThirdPartyVpnAdaptorInterface* CreateThirdPartyVpnAdaptor(
49       ThirdPartyVpnDriver* driver) override;
50 #endif
51   const std::string& NullRPCIdentifier() override;
52 
53   MOCK_METHOD2(CreateRPCServiceWatcher,
54                RPCServiceWatcherInterface*(
55                    const std::string& connection_name,
56                    const base::Closure& on_connection_vanished));
57 
58   MOCK_METHOD3(
59       CreatePowerManagerProxy,
60       PowerManagerProxyInterface*(
61           PowerManagerProxyDelegate* delegate,
62           const base::Closure& service_appeared_callback,
63           const base::Closure& service_vanished_callback));
64 #if !defined(DISABLE_WIFI) || !defined(DISABLE_WIRED_8021X)
65   MOCK_METHOD2(CreateSupplicantProcessProxy,
66                SupplicantProcessProxyInterface*(
67                    const base::Closure& service_appeared_callback,
68                    const base::Closure& service_vanished_callback));
69   MOCK_METHOD2(CreateSupplicantInterfaceProxy,
70                SupplicantInterfaceProxyInterface*(
71                    SupplicantEventDelegateInterface* delegate,
72                    const std::string& object_path));
73   MOCK_METHOD1(CreateSupplicantNetworkProxy,
74                SupplicantNetworkProxyInterface*(
75                    const std::string& object_path));
76 #endif  // DISABLE_WIFI || DISABLE_WIRED_8021X
77 #if !defined(DISABLE_WIFI)
78   MOCK_METHOD2(CreateSupplicantBSSProxy,
79                SupplicantBSSProxyInterface*(WiFiEndpoint* wifi_endpoint,
80                                             const std::string& object_path));
81 #endif  // DISABLE_WIFI
82   MOCK_METHOD1(CreateDHCPCDListener,
83                DHCPCDListenerInterface*(DHCPProvider* provider));
84   MOCK_METHOD1(CreateDHCPProxy,
85                DHCPProxyInterface*(const std::string& service));
86 
87   MOCK_METHOD0(CreateUpstartProxy, UpstartProxyInterface*());
88 
89   MOCK_METHOD0(CreateFirewallProxy, FirewallProxyInterface*());
90 
91 #if !defined(DISABLE_CELLULAR)
92   MOCK_METHOD2(CreateDBusPropertiesProxy,
93                DBusPropertiesProxyInterface*(const std::string& path,
94                                              const std::string& service));
95 
96   MOCK_METHOD4(CreateDBusObjectManagerProxy,
97                DBusObjectManagerProxyInterface*(
98                    const std::string& path,
99                    const std::string& service,
100                    const base::Closure& service_appeared_callback,
101                    const base::Closure& serivce_vanished_callback));
102   MOCK_METHOD5(CreateModemManagerProxy,
103                ModemManagerProxyInterface*(
104                    ModemManagerClassic* manager,
105                    const std::string& path,
106                    const std::string& service,
107                    const base::Closure& service_appeared_callback,
108                    const base::Closure& serivce_vanished_callback));
109   MOCK_METHOD2(CreateModemProxy,
110                ModemProxyInterface*(const std::string& path,
111                                     const std::string& service));
112   MOCK_METHOD2(CreateModemSimpleProxy,
113                ModemSimpleProxyInterface*(const std::string& path,
114                                           const std::string& service));
115 
116   MOCK_METHOD2(CreateModemCDMAProxy,
117                ModemCDMAProxyInterface*(const std::string& path,
118                                         const std::string& service));
119   MOCK_METHOD2(CreateModemGSMCardProxy,
120                ModemGSMCardProxyInterface*(const std::string& path,
121                                            const std::string& service));
122   MOCK_METHOD2(CreateModemGSMNetworkProxy,
123                ModemGSMNetworkProxyInterface*(const std::string& path,
124                                               const std::string& service));
125   MOCK_METHOD2(CreateModemGobiProxy,
126                ModemGobiProxyInterface*(const std::string& path,
127                                         const std::string& service));
128   MOCK_METHOD2(CreateMM1ModemModem3gppProxy,
129                mm1::ModemModem3gppProxyInterface*(const std::string& path,
130                                                   const std::string& service));
131   MOCK_METHOD2(CreateMM1ModemModemCdmaProxy,
132                mm1::ModemModemCdmaProxyInterface*(const std::string& path,
133                                                   const std::string& service));
134   MOCK_METHOD2(CreateMM1ModemProxy,
135                mm1::ModemProxyInterface*(const std::string& path,
136                                          const std::string& service));
137   MOCK_METHOD2(CreateMM1ModemSimpleProxy,
138                mm1::ModemSimpleProxyInterface*(const std::string& path,
139                                                const std::string& service));
140   MOCK_METHOD2(CreateSimProxy,
141                mm1::SimProxyInterface*(const std::string& path,
142                                        const std::string& service));
143 #endif  // DISABLE_CELLULAR
144 
145 #if !defined(DISABLE_WIMAX)
146   MOCK_METHOD1(CreateWiMaxDeviceProxy,
147                WiMaxDeviceProxyInterface*(const std::string& path));
148   MOCK_METHOD2(CreateWiMaxManagerProxy,
149                WiMaxManagerProxyInterface*(
150                    const base::Closure& service_appeared_callback,
151                    const base::Closure& service_vanished_callback));
152   MOCK_METHOD1(CreateWiMaxNetworkProxy,
153                WiMaxNetworkProxyInterface*(const std::string& path));
154 #endif  // DISABLE_WIMAX
155 
156  private:
157   std::string null_identifier_;
158 
159   DISALLOW_COPY_AND_ASSIGN(NiceMockControl);
160 };
161 
162 }  // namespace shill
163 
164 #endif  // SHILL_NICE_MOCK_CONTROL_H_
165