// Copyright 2018 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_DHCP_MOCK_DHCP_PROXY_H_
#define SHILL_DHCP_MOCK_DHCP_PROXY_H_

#include <string>

#include <base/macros.h>
#include <gmock/gmock.h>

#include "shill/dhcp/dhcp_proxy_interface.h"

namespace shill {

class MockDHCPProxy : public DHCPProxyInterface {
 public:
  MockDHCPProxy();
  MockDHCPProxy(const MockDHCPProxy&) = delete;
  MockDHCPProxy& operator=(const MockDHCPProxy&) = delete;

  ~MockDHCPProxy() override;

  MOCK_METHOD(void, Rebind, (const std::string&), (override));
  MOCK_METHOD(void, Release, (const std::string&), (override));
};

}  // namespace shill

#endif  // SHILL_DHCP_MOCK_DHCP_PROXY_H_
