blob: baca691e23f09773b2b4be2f194af3fe3c4c8ede [file] [log] [blame]
Thieu Le3426c8f2012-01-11 17:35:11 -08001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Chris Masone9be4a9d2011-05-16 15:44:09 -07002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SHILL_MOCK_DEVICE_
6#define SHILL_MOCK_DEVICE_
7
Chris Masone46eaaf52011-05-24 13:08:30 -07008#include <string>
9
Chris Masone9be4a9d2011-05-16 15:44:09 -070010#include <base/memory/ref_counted.h>
11#include <gmock/gmock.h>
12
13#include "shill/device.h"
Paul Stewart7de7e022013-08-28 09:42:50 -070014#include "shill/geolocation_info.h"
Chris Masone9be4a9d2011-05-16 15:44:09 -070015
16namespace shill {
17
Chris Masone9be4a9d2011-05-16 15:44:09 -070018class MockDevice : public Device {
19 public:
Chris Masone9be4a9d2011-05-16 15:44:09 -070020 MockDevice(ControlInterface *control_interface,
Paul Stewartb50f0b92011-05-16 16:31:42 -070021 EventDispatcher *dispatcher,
Thieu Le3426c8f2012-01-11 17:35:11 -080022 Metrics *metrics,
Chris Masonea82b7112011-05-25 15:16:29 -070023 Manager *manager,
24 const std::string &link_name,
Chris Masone626719f2011-08-18 16:58:48 -070025 const std::string &address,
Chris Masonea82b7112011-05-25 15:16:29 -070026 int interface_index);
27 virtual ~MockDevice();
Chris Masone9be4a9d2011-05-16 15:44:09 -070028
Eric Shienbrood9a245532012-03-07 14:20:39 -050029 MOCK_METHOD2(Start, void(Error *error,
30 const EnabledStateChangedCallback &callback));
31 MOCK_METHOD2(Stop, void(Error *error,
32 const EnabledStateChangedCallback &callback));
33 MOCK_METHOD1(SetEnabled, void(bool));
Jason Glasgowdf7c5532012-05-14 14:41:45 -040034 MOCK_METHOD3(SetEnabledPersistent, void(bool enable,
35 Error* error,
36 const ResultCallback &callback));
Wade Guthrie4823f4f2013-07-25 10:03:03 -070037 MOCK_METHOD3(Scan, void(Device::ScanType scan_type, Error *error,
38 const std::string &reason));
Eric Shienbrood9a245532012-03-07 14:20:39 -050039 MOCK_METHOD1(Load, bool(StoreInterface *storage));
40 MOCK_METHOD1(Save, bool(StoreInterface *storage));
Paul Stewart2bf1d352011-12-06 15:02:55 -080041 MOCK_METHOD0(DisableIPv6, void());
42 MOCK_METHOD0(EnableIPv6, void());
43 MOCK_METHOD0(EnableIPv6Privacy, void());
Paul Stewartc8f4bef2011-12-13 09:45:51 -080044 MOCK_METHOD0(DisableReversePathFilter, void());
45 MOCK_METHOD0(EnableReversePathFilter, void());
Paul Stewartd215af62012-04-24 23:25:50 -070046 MOCK_METHOD0(RestartPortalDetection, bool());
Paul Stewartc681fa02012-03-02 19:40:04 -080047 MOCK_METHOD0(RequestPortalDetection, bool());
Ben Chanb061f892013-02-27 17:46:55 -080048 MOCK_METHOD0(GetReceiveByteCount, uint64());
49 MOCK_METHOD0(GetTransmitByteCount, uint64());
Paul Stewartd215af62012-04-24 23:25:50 -070050 MOCK_CONST_METHOD1(IsConnectedToService, bool(const ServiceRefPtr &service));
Gaurav Shah435de2c2011-11-17 19:01:07 -080051 MOCK_CONST_METHOD0(technology, Technology::Identifier());
mukesh agrawal784566d2012-08-08 18:32:58 -070052 MOCK_METHOD0(OnBeforeSuspend, void());
53 MOCK_METHOD0(OnAfterResume, void());
Paul Stewart8596f9f2013-03-14 07:58:26 -070054 MOCK_METHOD0(OnConnectionUpdated, void());
Paul Stewart7de7e022013-08-28 09:42:50 -070055 MOCK_CONST_METHOD0(GetGeolocationObjects, std::vector<GeolocationInfo>());
Chris Masone9be4a9d2011-05-16 15:44:09 -070056
57 private:
58 DISALLOW_COPY_AND_ASSIGN(MockDevice);
59};
60
61} // namespace shill
62
63#endif // SHILL_MOCK_DEVICE_