1c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
2c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Copyright (C) 2012 The Android Open Source Project
3c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
4c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Licensed under the Apache License, Version 2.0 (the "License");
5c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// you may not use this file except in compliance with the License.
6c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// You may obtain a copy of the License at
7c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
8c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//      http://www.apache.org/licenses/LICENSE-2.0
9c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
10c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// Unless required by applicable law or agreed to in writing, software
11c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// distributed under the License is distributed on an "AS IS" BASIS,
12c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// See the License for the specific language governing permissions and
14c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu// limitations under the License.
15c0beca55d290fe0b1c96d78cbbcf94b05c23f5a5Peter Qiu//
16626719f89881a949d8b5a8fa808beb924496489fChris Masone
1760a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie#ifndef SHILL_MOCK_MANAGER_H_
1860a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie#define SHILL_MOCK_MANAGER_H_
19626719f89881a949d8b5a8fa808beb924496489fChris Masone
208a5322984f2d81bcbfd8d44c59747a11bd9b904bAlex Vakulenko#include <string>
211ce231c71932200e4d02c71567f8e93788120781Paul Stewart#include <vector>
228a5322984f2d81bcbfd8d44c59747a11bd9b904bAlex Vakulenko
23cc67c52a2c00f90e877971d552208dd99825d84eBen Chan#include <base/macros.h>
24626719f89881a949d8b5a8fa808beb924496489fChris Masone#include <gmock/gmock.h>
25626719f89881a949d8b5a8fa808beb924496489fChris Masone
26626719f89881a949d8b5a8fa808beb924496489fChris Masone#include "shill/manager.h"
27626719f89881a949d8b5a8fa808beb924496489fChris Masone
28626719f89881a949d8b5a8fa808beb924496489fChris Masonenamespace shill {
29626719f89881a949d8b5a8fa808beb924496489fChris Masone
30626719f89881a949d8b5a8fa808beb924496489fChris Masoneclass MockManager : public Manager {
31626719f89881a949d8b5a8fa808beb924496489fChris Masone public:
321e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MockManager(ControlInterface* control_interface,
331e006c610db980bca337121134d2ba54497b7a59Paul Stewart              EventDispatcher* dispatcher,
34bad1c10ffd2d4ac14f7bd9f4ef6a8982e711f566mukesh agrawal              Metrics* metrics);
355ea763b83299b5fad76a87183fb39a74c2d3c61dBen Chan  ~MockManager() override;
36626719f89881a949d8b5a8fa808beb924496489fChris Masone
371e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD0(device_info, DeviceInfo*());
381e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD0(modem_info, ModemInfo*());
391a72f5444e077ed21b8e085b17d7f9f1bc44fa5ePeter Qiu#if !defined(DISABLE_WIRED_8021X)
401e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_CONST_METHOD0(ethernet_eap_provider, EthernetEapProvider*());
411a72f5444e077ed21b8e085b17d7f9f1bc44fa5ePeter Qiu#endif  // DISABLE_WIRED_8021X
421e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD0(wimax_provider, WiMaxProvider*());
431e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD0(mutable_store, PropertyStore*());
441e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_CONST_METHOD0(store, const PropertyStore&());
451e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_CONST_METHOD0(run_path, const base::FilePath&());
46fb46caf4f23a41e73dfd87547121b5fb0230295aThieu Le  MOCK_METHOD0(Start, void());
476c1e3bbca64d642cb30ed9952203626942bc1451Thieu Le  MOCK_METHOD0(Stop, void());
481e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD3(SetProfileForService, void(const ServiceRefPtr& to_set,
491e006c610db980bca337121134d2ba54497b7a59Paul Stewart                                          const std::string& profile,
501e006c610db980bca337121134d2ba54497b7a59Paul Stewart                                          Error* error));
511e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(RegisterDevice, void(const DeviceRefPtr& to_manage));
521e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(DeregisterDevice, void(const DeviceRefPtr& to_forget));
531e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(HasService, bool(const ServiceRefPtr& to_manage));
541e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(RegisterService, void(const ServiceRefPtr& to_manage));
551e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(UpdateService, void(const ServiceRefPtr& to_update));
561e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(DeregisterService, void(const ServiceRefPtr& to_forget));
57a5e07ef0402aad0635a5e7a0932740b9dfbf46d1Darin Petkov  MOCK_METHOD1(RegisterDefaultServiceCallback,
581e006c610db980bca337121134d2ba54497b7a59Paul Stewart               int(const ServiceCallback& callback));
59a5e07ef0402aad0635a5e7a0932740b9dfbf46d1Darin Petkov  MOCK_METHOD1(DeregisterDefaultServiceCallback, void(int tag));
601e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(UpdateDevice, void(const DeviceRefPtr& to_update));
6160a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie  MOCK_METHOD0(UpdateWiFiProvider, void());
627de7e02e14074989757a4f9f220de2310cc05236Paul Stewart  MOCK_METHOD1(OnDeviceGeolocationInfoUpdated,
631e006c610db980bca337121134d2ba54497b7a59Paul Stewart               void(const DeviceRefPtr& device));
641e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(RecheckPortalOnService, void(const ServiceRefPtr& service));
657522551440b9a287bccf2d95a42357d04ab79814Paul Stewart  MOCK_METHOD2(HandleProfileEntryDeletion,
661e006c610db980bca337121134d2ba54497b7a59Paul Stewart               bool(const ProfileRefPtr& profile,
671e006c610db980bca337121134d2ba54497b7a59Paul Stewart                    const std::string& entry_name));
68e2bad7c1edd7dbe837619e5350bd70814e6913bePaul Stewart  MOCK_CONST_METHOD0(GetDefaultService, ServiceRefPtr());
6918213652e2ce4c6e4354951e5b665097b7a7aa6bPeter Qiu  MOCK_METHOD3(GetServiceWithStorageIdentifier,
701e006c610db980bca337121134d2ba54497b7a59Paul Stewart               ServiceRefPtr(const ProfileRefPtr& profile,
711e006c610db980bca337121134d2ba54497b7a59Paul Stewart                             const std::string& entry_name,
721e006c610db980bca337121134d2ba54497b7a59Paul Stewart                             Error* error));
7318213652e2ce4c6e4354951e5b665097b7a7aa6bPeter Qiu  MOCK_METHOD3(CreateTemporaryServiceFromProfile,
741e006c610db980bca337121134d2ba54497b7a59Paul Stewart               ServiceRefPtr(const ProfileRefPtr& profile,
751e006c610db980bca337121134d2ba54497b7a59Paul Stewart                             const std::string& entry_name,
761e006c610db980bca337121134d2ba54497b7a59Paul Stewart                             Error* error));
77700de6400c18f8cba77821f8cd2a1935b96999a6Peter Qiu  MOCK_CONST_METHOD0(IsConnected, bool());
789a24553461df7036755060423f90804011612249Eric Shienbrood  MOCK_METHOD0(UpdateEnabledTechnologies, void());
7920088d860631a67c151a12783fbbee63c708792fPaul Stewart  MOCK_METHOD1(IsPortalDetectionEnabled, bool(Technology::Identifier tech));
8010ccbb3c6bc4f4246105743c8508fc9ce8759c17Paul Stewart  MOCK_CONST_METHOD1(IsServiceEphemeral,
811e006c610db980bca337121134d2ba54497b7a59Paul Stewart                     bool(const ServiceConstRefPtr& service));
8222ce765226cfdcf267b7dc80c22892e6b29065eaPaul Stewart  MOCK_CONST_METHOD2(IsProfileBefore,
831e006c610db980bca337121134d2ba54497b7a59Paul Stewart                     bool(const ProfileRefPtr& a,
841e006c610db980bca337121134d2ba54497b7a59Paul Stewart                          const ProfileRefPtr& b));
853c5040174273386868cc8dea8044d22c465885d8Paul Stewart  MOCK_CONST_METHOD1(IsTechnologyConnected,
863c5040174273386868cc8dea8044d22c465885d8Paul Stewart                     bool(Technology::Identifier tech));
87036dba0c6641acdbe02d52260c6fa6dca84b1af2Paul Stewart  MOCK_CONST_METHOD1(IsTechnologyLinkMonitorEnabled,
88036dba0c6641acdbe02d52260c6fa6dca84b1af2Paul Stewart                     bool(Technology::Identifier tech));
898e6b8ef22e185310480c13aa3a6e89184cce62d1Ben Chan  MOCK_CONST_METHOD1(IsTechnologyAutoConnectDisabled,
908e6b8ef22e185310480c13aa3a6e89184cce62d1Ben Chan                     bool(Technology::Identifier tech));
911e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_CONST_METHOD1(IsDefaultProfile, bool(const StoreInterface* storage));
9268d4109ff0176f7e5a9b67b916478d638aac577aWade Guthrie  MOCK_METHOD3(RequestScan, void(Device::ScanType request_origin,
931e006c610db980bca337121134d2ba54497b7a59Paul Stewart                                 const std::string& technology, Error* error));
941e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_CONST_METHOD0(GetPortalCheckURL, const std::string&());
95c681fa0742cabc686ccabaf0fdf6ce12dd7046b2Paul Stewart  MOCK_CONST_METHOD0(GetPortalCheckInterval, int());
962d36a6e266deb96db1d3cf4b18dcc9d863795f28Samuel Tan  MOCK_METHOD0(IsSuspending, bool());
97a900f4a4b94d852e2a52a59f59ede4261d48ad80Peter Qiu  MOCK_CONST_METHOD1(GetEnabledDeviceWithTechnology,
98208a97ed32c62bc11b0a20eaf01833482e8c0fbcPaul Stewart                     DeviceRefPtr(Technology::Identifier technology));
99a900f4a4b94d852e2a52a59f59ede4261d48ad80Peter Qiu  MOCK_CONST_METHOD1(GetEnabledDeviceByLinkName,
1001e006c610db980bca337121134d2ba54497b7a59Paul Stewart                     DeviceRefPtr(const std::string& link_name));
101782cdcea789d76a7ad7802cf9410b14a2399c0a9Garret Kelly  MOCK_CONST_METHOD0(GetMinimumMTU, int());
102208a97ed32c62bc11b0a20eaf01833482e8c0fbcPaul Stewart  MOCK_CONST_METHOD1(ShouldAcceptHostnameFrom,
1031e006c610db980bca337121134d2ba54497b7a59Paul Stewart                     bool(const std::string& device_name));
104d48fa0c5531e2102d4f537e81b9f92afc2d60955Peter Qiu  MOCK_CONST_METHOD1(IsDHCPv6EnabledForDevice,
1051e006c610db980bca337121134d2ba54497b7a59Paul Stewart                     bool(const std::string& device_name));
10691b7150819b785f36c2c094ae4aa102336bd6f71Peter Qiu  MOCK_METHOD1(SetBlacklistedDevices,
10791b7150819b785f36c2c094ae4aa102336bd6f71Peter Qiu               void(const std::vector<std::string>& blacklisted_devices));
1081ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_METHOD1(SetDHCPv6EnabledDevices,
1091e006c610db980bca337121134d2ba54497b7a59Paul Stewart               void(const std::vector<std::string>& device_list));
1101ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_METHOD2(SetTechnologyOrder,
1111e006c610db980bca337121134d2ba54497b7a59Paul Stewart               void(const std::string& order, Error* error));
1121ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_METHOD1(SetIgnoreUnknownEthernet, void(bool ignore));
1131e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(SetStartupPortalList, void(const std::string& portal_list));
1141ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_METHOD0(SetPassiveMode, void());
1151ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_METHOD1(SetPrependDNSServers,
1161e006c610db980bca337121134d2ba54497b7a59Paul Stewart               void(const std::string& prepend_dns_servers));
1171ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_METHOD1(SetMinimumMTU, void(const int mtu));
1181e006c610db980bca337121134d2ba54497b7a59Paul Stewart  MOCK_METHOD1(SetAcceptHostnameFrom, void(const std::string& hostname_from));
1191ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_CONST_METHOD0(ignore_unknown_ethernet, bool());
1201ce231c71932200e4d02c71567f8e93788120781Paul Stewart  MOCK_CONST_METHOD1(FilterPrependDNSServersByFamily,
1211ce231c71932200e4d02c71567f8e93788120781Paul Stewart                     std::vector<std::string>(IPAddress::Family family));
1229b6f8b8cdeb0c9e925fad635cc52a467c82741d0Peter Qiu  MOCK_METHOD0(OnInnerDevicesChanged, void());
1238a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan  MOCK_METHOD3(ClaimDevice,
1248a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan               void(const std::string& claimer_name,
1258a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan                    const std::string& interface_name, Error* error));
1268a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan  MOCK_METHOD4(ReleaseDevice, void(const std::string& claimer_name,
1278a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan                                   const std::string& interface_name,
1288a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan                                   bool* claimer_removed, Error* error));
1298a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan  MOCK_METHOD0(OnDeviceClaimerVanished, void());
130e569b214bad42ec2be75ac1db2ca9b15563fdc61Samuel Tan#if !defined(DISABLE_WIFI) && defined(__BRILLO__)
1318a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan  MOCK_METHOD2(SetupApModeInterface,
1328a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan               bool(std::string* out_interface_name, Error* error));
1338a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan  MOCK_METHOD2(SetupStationModeInterface,
1348a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan               bool(std::string* out_interface_name, Error* error));
1358a3f68edbcf7fe59380609588787baa54cbd9bddSamuel Tan  MOCK_METHOD0(OnApModeSetterVanished, void());
136e569b214bad42ec2be75ac1db2ca9b15563fdc61Samuel Tan#endif  // !DISABLE_WIFI && __BRILLO__
137626719f89881a949d8b5a8fa808beb924496489fChris Masone
138d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart  // Getter and setter for a mocked device info instance.
1391e006c610db980bca337121134d2ba54497b7a59Paul Stewart  DeviceInfo* mock_device_info() { return mock_device_info_; }
1401e006c610db980bca337121134d2ba54497b7a59Paul Stewart  void set_mock_device_info(DeviceInfo* mock_device_info) {
141d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart      mock_device_info_ = mock_device_info;
142d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart  }
143d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart
144626719f89881a949d8b5a8fa808beb924496489fChris Masone private:
1451e006c610db980bca337121134d2ba54497b7a59Paul Stewart  DeviceInfo* mock_device_info_;
146d4f26486b237fae831d4b682481de785fc99c66ePaul Stewart
147626719f89881a949d8b5a8fa808beb924496489fChris Masone  DISALLOW_COPY_AND_ASSIGN(MockManager);
148626719f89881a949d8b5a8fa808beb924496489fChris Masone};
149626719f89881a949d8b5a8fa808beb924496489fChris Masone
150626719f89881a949d8b5a8fa808beb924496489fChris Masone}  // namespace shill
151626719f89881a949d8b5a8fa808beb924496489fChris Masone
15260a3706bee5686ae2322a774b9e7d5e8e63fcaf7Wade Guthrie#endif  // SHILL_MOCK_MANAGER_H_
153