#pragma once

#include "util.hpp"

#include <string>

#include <gmock/gmock.h>

namespace pid_control
{

class DbusHelperMock : public DbusHelperInterface
{
  public:
    virtual ~DbusHelperMock() = default;

    MOCK_METHOD2(getService,
                 std::string(const std::string&, const std::string&));
    MOCK_METHOD3(getProperties, void(const std::string&, const std::string&,
                                     struct SensorProperties*));

    MOCK_METHOD2(thresholdsAsserted,
                 bool(const std::string& service, const std::string& path));
};

} // namespace pid_control
