// Copyright 2019 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SHILL_ETHERNET_MOCK_ETHERNET_PROVIDER_H_
#define SHILL_ETHERNET_MOCK_ETHERNET_PROVIDER_H_

#include "shill/ethernet/ethernet_provider.h"

#include <gmock/gmock.h>

#include "shill/ethernet/ethernet_service.h"

namespace shill {

class MockEthernetProvider : public EthernetProvider {
 public:
  MockEthernetProvider();
  ~MockEthernetProvider() override;

  MOCK_METHOD(void, Start, (), (override));
  MOCK_METHOD(void, Stop, (), (override));
  MOCK_METHOD(EthernetServiceRefPtr,
              CreateService,
              (base::WeakPtr<Ethernet>),
              (override));
  MOCK_METHOD(ServiceRefPtr,
              GetService,
              (const KeyValueStore& args, Error*),
              (override));
  MOCK_METHOD(void, RegisterService, (EthernetServiceRefPtr), (override));
  MOCK_METHOD(void, DeregisterService, (EthernetServiceRefPtr), (override));
  MOCK_METHOD(void, RefreshGenericEthernetService, (), (override));

 private:
  DISALLOW_COPY_AND_ASSIGN(MockEthernetProvider);
};

}  // namespace shill

#endif  // SHILL_ETHERNET_MOCK_ETHERNET_PROVIDER_H_
