// Copyright (c) 2012 The Chromium 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 CHROMEOS_DBUS_MOCK_SHILL_IPCONFIG_CLIENT_H_
#define CHROMEOS_DBUS_MOCK_SHILL_IPCONFIG_CLIENT_H_

#include "base/values.h"
#include "chromeos/dbus/shill_ipconfig_client.h"
#include "chromeos/dbus/shill_property_changed_observer.h"
#include "dbus/object_path.h"
#include "testing/gmock/include/gmock/gmock.h"

namespace chromeos {

class MockShillIPConfigClient : public ShillIPConfigClient {
 public:
  MockShillIPConfigClient();
  virtual ~MockShillIPConfigClient();

  MOCK_METHOD1(Init, void(dbus::Bus* bus));
  MOCK_METHOD2(AddPropertyChangedObserver,
               void(const dbus::ObjectPath& ipconfig_path,
                    ShillPropertyChangedObserver* observer));
  MOCK_METHOD2(RemovePropertyChangedObserver,
               void(const dbus::ObjectPath& ipconfig_path,
                    ShillPropertyChangedObserver* observer));
  MOCK_METHOD2(Refresh, void(const dbus::ObjectPath& ipconfig_path,
                             const VoidDBusMethodCallback& callback));
  MOCK_METHOD2(GetProperties, void(const dbus::ObjectPath& ipconfig_path,
                                   const DictionaryValueCallback& callback));
  MOCK_METHOD4(SetProperty, void(const dbus::ObjectPath& ipconfig_path,
                                 const std::string& name,
                                 const base::Value& value,
                                 const VoidDBusMethodCallback& callback));
  MOCK_METHOD3(ClearProperty, void(const dbus::ObjectPath& ipconfig_path,
                                   const std::string& name,
                                   const VoidDBusMethodCallback& callback));
  MOCK_METHOD2(Remove, void(const dbus::ObjectPath& ipconfig_path,
                            const VoidDBusMethodCallback& callback));
};

}  // namespace chromeos

#endif  // CHROMEOS_DBUS_MOCK_SHILL_IPCONFIG_CLIENT_H_