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// 1677cb681ab58c6623464a355e646138ab84d38573Darin Petkov 17675d0b0f04936050a357722f52dc078a3ab671d8Peter Qiu#ifndef SHILL_DHCP_MOCK_DHCP_PROVIDER_H_ 18675d0b0f04936050a357722f52dc078a3ab671d8Peter Qiu#define SHILL_DHCP_MOCK_DHCP_PROVIDER_H_ 1977cb681ab58c6623464a355e646138ab84d38573Darin Petkov 20ed2c28c6e3c0bc2f9d8832fee083868304178f08Hristo Stefanov#include <string> 21ed2c28c6e3c0bc2f9d8832fee083868304178f08Hristo Stefanov 22cc67c52a2c00f90e877971d552208dd99825d84eBen Chan#include <base/macros.h> 2377cb681ab58c6623464a355e646138ab84d38573Darin Petkov#include <gmock/gmock.h> 2477cb681ab58c6623464a355e646138ab84d38573Darin Petkov 25675d0b0f04936050a357722f52dc078a3ab671d8Peter Qiu#include "shill/dhcp/dhcp_config.h" 26675d0b0f04936050a357722f52dc078a3ab671d8Peter Qiu#include "shill/dhcp/dhcp_provider.h" 2715d5431798155cc83a3fcb8abe0d1a2d5128f7b6Rebecca Silberstein#include "shill/dhcp_properties.h" 28f2f68a50aabcde256cabad0041c357cbacaeb3e0mukesh agrawal#include "shill/refptr_types.h" 2977cb681ab58c6623464a355e646138ab84d38573Darin Petkov 3077cb681ab58c6623464a355e646138ab84d38573Darin Petkovnamespace shill { 3177cb681ab58c6623464a355e646138ab84d38573Darin Petkov 3277cb681ab58c6623464a355e646138ab84d38573Darin Petkovclass MockDHCPProvider : public DHCPProvider { 3377cb681ab58c6623464a355e646138ab84d38573Darin Petkov public: 341bdedf1296df51b2566c8d73299d52546167b971Darin Petkov MockDHCPProvider(); 355ea763b83299b5fad76a87183fb39a74c2d3c61dBen Chan ~MockDHCPProvider() override; 361bdedf1296df51b2566c8d73299d52546167b971Darin Petkov 378ee1c83abf0050cb808fe154babe934546e77821Peter Qiu MOCK_METHOD3(Init, 388ee1c83abf0050cb808fe154babe934546e77821Peter Qiu void(ControlInterface*, EventDispatcher*, Metrics*)); 398e0151e84f077cc9c0646d5bafd925ed235a1c12Peter Qiu MOCK_METHOD4(CreateIPv4Config, 400bfabaae654ba3bf597a303b7517a0e14fd65089Paul Stewart DHCPConfigRefPtr(const std::string& device_name, 410bfabaae654ba3bf597a303b7517a0e14fd65089Paul Stewart const std::string& storage_identifier, 4215d5431798155cc83a3fcb8abe0d1a2d5128f7b6Rebecca Silberstein bool arp_gateway, 4315d5431798155cc83a3fcb8abe0d1a2d5128f7b6Rebecca Silberstein const DhcpProperties& dhcp_props)); 44d48fa0c5531e2102d4f537e81b9f92afc2d60955Peter Qiu MOCK_METHOD2(CreateIPv6Config, 450bfabaae654ba3bf597a303b7517a0e14fd65089Paul Stewart DHCPConfigRefPtr(const std::string& device_name, 460bfabaae654ba3bf597a303b7517a0e14fd65089Paul Stewart const std::string& storage_identifier)); 470bfabaae654ba3bf597a303b7517a0e14fd65089Paul Stewart MOCK_METHOD2(BindPID, void(int pid, const DHCPConfigRefPtr& config)); 48d1c7b413bf7e1f264d1acfdfb2f698413f6cf352Paul Stewart MOCK_METHOD1(UnbindPID, void(int pid)); 491bdedf1296df51b2566c8d73299d52546167b971Darin Petkov 501bdedf1296df51b2566c8d73299d52546167b971Darin Petkov private: 511bdedf1296df51b2566c8d73299d52546167b971Darin Petkov DISALLOW_COPY_AND_ASSIGN(MockDHCPProvider); 5277cb681ab58c6623464a355e646138ab84d38573Darin Petkov}; 5377cb681ab58c6623464a355e646138ab84d38573Darin Petkov 5477cb681ab58c6623464a355e646138ab84d38573Darin Petkov} // namespace shill 5577cb681ab58c6623464a355e646138ab84d38573Darin Petkov 56675d0b0f04936050a357722f52dc078a3ab671d8Peter Qiu#endif // SHILL_DHCP_MOCK_DHCP_PROVIDER_H_ 57