// // Copyright (C) 2012 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // #ifndef SHILL_MOCK_SERVICE_H_ #define SHILL_MOCK_SERVICE_H_ #include #include #include #include "shill/connection.h" #include "shill/refptr_types.h" #include "shill/service.h" #include "shill/technology.h" namespace shill { class MockService : public Service { public: // A constructor for the Service object MockService(ControlInterface* control_interface, EventDispatcher* dispatcher, Metrics* metrics, Manager* manager); ~MockService() override; MOCK_METHOD0(AutoConnect, void()); MOCK_METHOD2(Connect, void(Error* error, const char* reason)); MOCK_METHOD2(Disconnect, void(Error* error, const char* reason)); MOCK_METHOD3(DisconnectWithFailure, void(Service::ConnectFailure failure, Error* error, const char* reason)); MOCK_METHOD2(UserInitiatedDisconnect, void(const char* reason, Error* error)); MOCK_METHOD1(CalculateState, std::string(Error* error)); MOCK_CONST_METHOD0(state, ConnectState()); MOCK_METHOD1(SetState, void(ConnectState state)); MOCK_METHOD2(SetPortalDetectionFailure, void(const std::string& phase, const std::string& status)); MOCK_CONST_METHOD0(IsConnected, bool()); MOCK_CONST_METHOD0(IsConnecting, bool()); MOCK_CONST_METHOD1(IsDependentOn, bool(const ServiceRefPtr& b)); MOCK_CONST_METHOD0(IsFailed, bool()); MOCK_CONST_METHOD0(IsOnline, bool()); MOCK_CONST_METHOD0(IsVisible, bool()); MOCK_METHOD1(SetFailure, void(ConnectFailure failure)); MOCK_CONST_METHOD0(failure, ConnectFailure()); MOCK_CONST_METHOD1(GetDeviceRpcId, std::string(Error* error)); MOCK_CONST_METHOD0(GetInnerDeviceRpcIdentifier, std::string()); MOCK_CONST_METHOD0(GetRpcIdentifier, std::string()); MOCK_CONST_METHOD0(GetStorageIdentifier, std::string()); MOCK_CONST_METHOD1(GetLoadableStorageIdentifier, std::string(const StoreInterface& store_interface)); MOCK_METHOD1(Load, bool(StoreInterface* store_interface)); MOCK_METHOD0(Unload, bool()); MOCK_METHOD1(Save, bool(StoreInterface* store_interface)); MOCK_METHOD2(Configure, void(const KeyValueStore& args, Error* error)); MOCK_CONST_METHOD1(DoPropertiesMatch, bool(const KeyValueStore& args)); MOCK_CONST_METHOD0(Is8021xConnectable, bool()); MOCK_CONST_METHOD0(HasStaticNameServers, bool()); MOCK_CONST_METHOD0(IsPortalDetectionDisabled, bool()); MOCK_CONST_METHOD0(IsPortalDetectionAuto, bool()); MOCK_CONST_METHOD0(IsRemembered, bool()); MOCK_CONST_METHOD0(HasProxyConfig, bool()); MOCK_METHOD1(SetConnection, void(const ConnectionRefPtr& connection)); MOCK_CONST_METHOD0(connection, const ConnectionRefPtr&()); MOCK_CONST_METHOD0(explicitly_disconnected, bool()); #if !defined(DISABLE_WIFI) || !defined(DISABLE_WIRED_8021X) MOCK_CONST_METHOD0(eap, const EapCredentials*()); #endif // DISABLE_WIFI || DISABLE_WIRED_8021X MOCK_CONST_METHOD0(technology, Technology::Identifier()); MOCK_METHOD1(OnPropertyChanged, void(const std::string& property)); MOCK_METHOD0(ClearExplicitlyDisconnected, void()); MOCK_CONST_METHOD0(is_dns_auto_fallback_allowed, bool()); MOCK_METHOD0(NotifyIPConfigChanges, void()); MOCK_CONST_METHOD0(link_monitor_disabled, bool()); MOCK_METHOD0(EnableAndRetainAutoConnect, void()); MOCK_METHOD1(OnBeforeSuspend, void(const ResultCallback& callback)); MOCK_METHOD0(OnAfterResume, void()); MOCK_METHOD1(OnDefaultServiceStateChanged, void(const ServiceRefPtr& service)); // Set a string for this Service via |store|. Can be wired to Save() for // test purposes. bool FauxSave(StoreInterface* store); // Sets the connection reference returned by default when connection() // is called. void set_mock_connection(const ConnectionRefPtr& connection) { mock_connection_ = connection; } const std::string& friendly_name() const { return Service::friendly_name(); } private: ConnectionRefPtr mock_connection_; DISALLOW_COPY_AND_ASSIGN(MockService); }; } // namespace shill #endif // SHILL_MOCK_SERVICE_H_