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// 167a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 17d6a8b519e3057f52313e502f502a4819a942e089Ben Chan#ifndef SHILL_WIFI_MOCK_WIFI_H_ 18d6a8b519e3057f52313e502f502a4819a942e089Ben Chan#define SHILL_WIFI_MOCK_WIFI_H_ 197a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 20ed2c28c6e3c0bc2f9d8832fee083868304178f08Hristo Stefanov#include <map> 217a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal#include <string> 227a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 237a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal#include <base/memory/ref_counted.h> 247a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal#include <gmock/gmock.h> 257a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 267a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal#include "shill/key_value_store.h" 277a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal#include "shill/refptr_types.h" 28d6a8b519e3057f52313e502f502a4819a942e089Ben Chan#include "shill/wifi/wifi.h" 29d6a8b519e3057f52313e502f502a4819a942e089Ben Chan#include "shill/wifi/wifi_endpoint.h" 30d6a8b519e3057f52313e502f502a4819a942e089Ben Chan#include "shill/wifi/wifi_service.h" 317a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 327a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawalnamespace shill { 337a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 347a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawalclass ControlInterface; 357a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawalclass Error; 367a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawalclass EventDispatcher; 377a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 387a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawalclass MockWiFi : public WiFi { 397a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal public: 402b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MockWiFi(ControlInterface* control_interface, 412b363903f38a515001c5edc7202403fcddb15a01Paul Stewart EventDispatcher* dispatcher, 422b363903f38a515001c5edc7202403fcddb15a01Paul Stewart Metrics* metrics, 432b363903f38a515001c5edc7202403fcddb15a01Paul Stewart Manager* manager, 442b363903f38a515001c5edc7202403fcddb15a01Paul Stewart const std::string& link_name, 452b363903f38a515001c5edc7202403fcddb15a01Paul Stewart const std::string& address, 467a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal int interface_index); 475ea763b83299b5fad76a87183fb39a74c2d3c61dBen Chan ~MockWiFi() override; 487a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 492b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD2(Start, void(Error* error, 502b363903f38a515001c5edc7202403fcddb15a01Paul Stewart const EnabledStateChangedCallback& callback)); 512b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD2(Stop, void(Error* error, 522b363903f38a515001c5edc7202403fcddb15a01Paul Stewart const EnabledStateChangedCallback& callback)); 532b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD3(Scan, void(ScanType scan_type, Error* error, 542b363903f38a515001c5edc7202403fcddb15a01Paul Stewart const std::string& reason)); 552b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD1(DisconnectFromIfActive, void(WiFiService* service)); 562b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD1(DisconnectFrom, void(WiFiService* service)); 572b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD1(ClearCachedCredentials, void(const WiFiService* service)); 582b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD1(ConnectTo, void(WiFiService* service)); 598a3188dbc04245c17a4729d16a632547ce4bf585mukesh agrawal MOCK_CONST_METHOD0(IsIdle, bool()); 603c5040174273386868cc8dea8044d22c465885d8Paul Stewart MOCK_METHOD1(NotifyEndpointChanged, 612b363903f38a515001c5edc7202403fcddb15a01Paul Stewart void(const WiFiEndpointConstRefPtr& endpoint)); 622b363903f38a515001c5edc7202403fcddb15a01Paul Stewart MOCK_METHOD1(DestroyIPConfigLease, void(const std::string&)); 63fa11e28ddb81dab93971d5433a5274a1dc5c8283Paul Stewart MOCK_CONST_METHOD0(IsConnectedViaTether, bool()); 647a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 657a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal private: 667a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal DISALLOW_COPY_AND_ASSIGN(MockWiFi); 677a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal}; 687a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 697a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal} // namespace shill 707a4e4008dc09effe39c94a5f9575644a79ee1388mukesh agrawal 71d6a8b519e3057f52313e502f502a4819a942e089Ben Chan#endif // SHILL_WIFI_MOCK_WIFI_H_ 72