blob: 516d08a76a4e1b10dcbe1af794ad7bba1d0f56e1 [file] [log] [blame]
Chris Masone34af2182011-08-22 11:59:36 -07001// Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ben Chanc45688b2014-07-02 23:50:45 -07005#ifndef SHILL_MOCK_IPCONFIG_H_
6#define SHILL_MOCK_IPCONFIG_H_
Chris Masone34af2182011-08-22 11:59:36 -07007
Hristo Stefanoved2c28c2011-11-29 15:37:30 -08008#include <string>
Peter Qiua89154b2014-05-23 15:45:42 -07009#include <vector>
Hristo Stefanoved2c28c2011-11-29 15:37:30 -080010
Ben Chancc67c522014-09-03 07:19:18 -070011#include <base/macros.h>
Chris Masone34af2182011-08-22 11:59:36 -070012#include <gmock/gmock.h>
13
14#include "shill/ipconfig.h"
15
16namespace shill {
Chris Masone34af2182011-08-22 11:59:36 -070017
18class MockIPConfig : public IPConfig {
19 public:
Paul Stewart1e006c62015-06-16 12:29:06 -070020 MockIPConfig(ControlInterface* control_interface,
21 const std::string& device_name);
Ben Chan5ea763b2014-08-13 11:07:54 -070022 ~MockIPConfig() override;
Chris Masone34af2182011-08-22 11:59:36 -070023
Paul Stewart1e006c62015-06-16 12:29:06 -070024 MOCK_CONST_METHOD0(properties, const Properties& (void));
Chris Masone34af2182011-08-22 11:59:36 -070025 MOCK_METHOD0(RequestIP, bool(void));
26 MOCK_METHOD0(RenewIP, bool(void));
Paul Stewart217c61d2013-06-13 15:12:02 -070027 MOCK_METHOD1(ReleaseIP, bool(ReleaseReason reason));
Paul Stewartc5099532013-12-12 07:53:15 -080028 MOCK_METHOD0(ResetProperties, void(void));
mukesh agrawal7aed61c2013-04-22 16:01:24 -070029 MOCK_METHOD0(EmitChanges, void(void));
Peter Qiua89154b2014-05-23 15:45:42 -070030 MOCK_METHOD1(UpdateDNSServers,
Paul Stewart1e006c62015-06-16 12:29:06 -070031 void(const std::vector<std::string>& dns_servers));
Samuel Tan815a6fb2014-10-23 16:53:59 -070032 MOCK_METHOD1(UpdateLeaseExpirationTime, void(uint32_t new_lease_duration));
33 MOCK_METHOD0(ResetLeaseExpirationTime, void(void));
Darin Petkovef34f182011-08-26 14:14:40 -070034
35 private:
Paul Stewart1e006c62015-06-16 12:29:06 -070036 const Properties& real_properties() {
Thieu Le03026662013-04-04 10:45:11 -070037 return IPConfig::properties();
38 }
39
Darin Petkovef34f182011-08-26 14:14:40 -070040 DISALLOW_COPY_AND_ASSIGN(MockIPConfig);
Chris Masone34af2182011-08-22 11:59:36 -070041};
42
43} // namespace shill
44
Ben Chanc45688b2014-07-02 23:50:45 -070045#endif // SHILL_MOCK_IPCONFIG_H_