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