blob: 575157c6c110d76f31ad2fd4dc752058b7bb5dd6 [file] [edit]
// Copyright 2018 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef SHILL_MOCK_ADAPTORS_H_
#define SHILL_MOCK_ADAPTORS_H_
#include <string>
#include <vector>
#include <gmock/gmock.h>
#include "shill/adaptor_interfaces.h"
#include "shill/error.h"
#include "shill/store/key_value_store.h"
namespace shill {
// This file contains the stub Adaptor classes which provide the default
// implementation for *AdaptorInterface, and their mock versions if needed (only
// provide the mock functions which the tests require). Constructors and
// destructors of the mock classes are defined in the cc file for the
// compilation performance consideration.
class DeviceStubAdaptor : public DeviceAdaptorInterface {
public:
const RpcIdentifier& GetRpcIdentifier() const override { return rpc_id_; }
void EmitBoolChanged(const std::string& name, bool value) override {}
void EmitUintChanged(const std::string& name, uint32_t value) override {}
void EmitUint16Changed(const std::string& name, uint16_t value) override {}
void EmitIntChanged(const std::string& name, int value) override {}
void EmitStringChanged(const std::string& name,
const std::string& value) override {}
void EmitStringmapChanged(const std::string& name,
const Stringmap& value) override {}
void EmitStringmapsChanged(const std::string& name,
const Stringmaps& value) override {}
void EmitStringsChanged(const std::string& name,
const Strings& value) override {}
void EmitKeyValueStoreChanged(const std::string& name,
const KeyValueStore& value) override {}
void EmitKeyValueStoresChanged(const std::string& name,
const KeyValueStores& value) override {}
void EmitRpcIdentifierChanged(const std::string& name,
const RpcIdentifier& value) override {}
void EmitRpcIdentifierArrayChanged(const std::string& name,
const RpcIdentifiers& value) override {}
private:
RpcIdentifier rpc_id_{"/device_rpc"};
};
class DeviceMockAdaptor : public DeviceStubAdaptor {
public:
DeviceMockAdaptor();
~DeviceMockAdaptor() override;
MOCK_METHOD(void, EmitBoolChanged, (const std::string&, bool), (override));
MOCK_METHOD(void,
EmitStringChanged,
(const std::string&, const std::string&),
(override));
MOCK_METHOD(void,
EmitKeyValueStoresChanged,
(const std::string&, const KeyValueStores&),
(override));
MOCK_METHOD(void,
EmitRpcIdentifierArrayChanged,
(const std::string&, const std::vector<RpcIdentifier>&),
(override));
};
class IPConfigStubAdaptor : public IPConfigAdaptorInterface {
public:
const RpcIdentifier& GetRpcIdentifier() const override { return rpc_id_; }
void EmitBoolChanged(const std::string& name, bool value) override {}
void EmitUintChanged(const std::string& name, uint32_t value) override {}
void EmitIntChanged(const std::string& name, int value) override {}
void EmitStringChanged(const std::string& name,
const std::string& value) override {}
void EmitStringsChanged(const std::string& name,
const std::vector<std::string>& value) override {}
private:
RpcIdentifier rpc_id_{"/ipconfig_rpc"};
};
class IPConfigMockAdaptor : public IPConfigStubAdaptor {
public:
IPConfigMockAdaptor();
~IPConfigMockAdaptor() override;
MOCK_METHOD(void,
EmitStringChanged,
(const std::string&, const std::string&),
(override));
MOCK_METHOD(void,
EmitStringsChanged,
(const std::string&, const std::vector<std::string>&),
(override));
};
class ManagerStubAdaptor : public ManagerAdaptorInterface {
public:
const RpcIdentifier& GetRpcIdentifier() const override { return rpc_id_; }
void RegisterAsync(
base::OnceCallback<void(bool)> completion_callback) override {}
void EmitBoolChanged(const std::string& name, bool value) override {}
void EmitUintChanged(const std::string& name, uint32_t value) override {}
void EmitIntChanged(const std::string& name, int value) override {}
void EmitStringChanged(const std::string& name,
const std::string& value) override {}
void EmitStringsChanged(const std::string& name,
const std::vector<std::string>& value) override {}
void EmitKeyValueStoreChanged(const std::string& name,
const KeyValueStore& value) override {}
void EmitRpcIdentifierChanged(const std::string& name,
const RpcIdentifier& value) override {}
void EmitRpcIdentifierArrayChanged(const std::string& name,
const RpcIdentifiers& value) override {}
private:
RpcIdentifier rpc_id_{"/manager_rpc"};
};
class ManagerMockAdaptor : public ManagerStubAdaptor {
public:
ManagerMockAdaptor();
~ManagerMockAdaptor() override;
MOCK_METHOD(void,
EmitStringChanged,
(const std::string&, const std::string&),
(override));
MOCK_METHOD(void,
EmitRpcIdentifierChanged,
(const std::string&, const RpcIdentifier&),
(override));
MOCK_METHOD(void,
EmitRpcIdentifierArrayChanged,
(const std::string&, const std::vector<RpcIdentifier>&),
(override));
};
class ProfileStubAdaptor : public ProfileAdaptorInterface {
public:
const RpcIdentifier& GetRpcIdentifier() const override { return rpc_id_; }
void EmitBoolChanged(const std::string& name, bool value) override {}
void EmitUintChanged(const std::string& name, uint32_t value) override {}
void EmitIntChanged(const std::string& name, int value) override {}
void EmitStringChanged(const std::string& name,
const std::string& value) override {}
private:
RpcIdentifier rpc_id_{"/profile_rpc"};
};
class RpcTaskStubAdaptor : public RpcTaskAdaptorInterface {
public:
static constexpr char kRpcId[] = "/rpc_task_rpc";
static constexpr char kRpcConnId[] = "/rpc_task_rpc_conn";
RpcTaskStubAdaptor() = default;
const RpcIdentifier& GetRpcIdentifier() const override { return rpc_id_; }
const RpcIdentifier& GetRpcConnectionIdentifier() const override {
return rpc_conn_id_;
}
private:
const RpcIdentifier rpc_id_{kRpcId};
const RpcIdentifier rpc_conn_id_{kRpcConnId};
};
class ServiceStubAdaptor : public ServiceAdaptorInterface {
public:
const RpcIdentifier& GetRpcIdentifier() const override { return rpc_id_; }
void EmitBoolChanged(const std::string& name, bool value) override {}
void EmitUint8Changed(const std::string& name, uint8_t value) override {}
void EmitUint16Changed(const std::string& name, uint16_t value) override {}
void EmitUint16sChanged(const std::string& name,
const Uint16s& value) override {}
void EmitUintChanged(const std::string& name, uint32_t value) override {}
void EmitUint64Changed(const std::string& name, uint64_t value) override {}
void EmitIntChanged(const std::string& name, int value) override {}
void EmitRpcIdentifierChanged(const std::string& name,
const RpcIdentifier& value) override {}
void EmitStringChanged(const std::string& name,
const std::string& value) override {}
void EmitStringmapChanged(const std::string& name,
const Stringmap& value) override {}
void EmitStringmapsChanged(const std::string& name,
const Stringmaps& value) override {}
void EmitKeyValueStoreChanged(const std::string& name,
const KeyValueStore& value) override {}
private:
RpcIdentifier rpc_id_{"/service_rpc"};
};
// These are the functions that a Service adaptor must support
class ServiceMockAdaptor : public ServiceStubAdaptor {
public:
ServiceMockAdaptor();
~ServiceMockAdaptor() override;
MOCK_METHOD(void, EmitBoolChanged, (const std::string&, bool), (override));
MOCK_METHOD(void,
EmitUint8Changed,
(const std::string&, uint8_t),
(override));
MOCK_METHOD(void,
EmitUint16Changed,
(const std::string&, uint16_t),
(override));
MOCK_METHOD(void,
EmitUint16sChanged,
(const std::string&, const Uint16s&),
(override));
MOCK_METHOD(void, EmitIntChanged, (const std::string&, int), (override));
MOCK_METHOD(void,
EmitRpcIdentifierChanged,
(const std::string&, const RpcIdentifier&),
(override));
MOCK_METHOD(void,
EmitStringChanged,
(const std::string&, const std::string&),
(override));
MOCK_METHOD(void,
EmitStringmapChanged,
(const std::string&, const Stringmap&),
(override));
MOCK_METHOD(void,
EmitStringmapsChanged,
(const std::string&, const Stringmaps&),
(override));
MOCK_METHOD(void,
EmitKeyValueStoreChanged,
(const std::string&, const KeyValueStore&),
(override));
};
#ifndef DISABLE_VPN
class ThirdPartyVpnStubAdaptor : public ThirdPartyVpnAdaptorInterface {
public:
void EmitPacketReceived(const std::vector<uint8_t>& packet) override {}
void EmitPlatformMessage(uint32_t message) override {}
};
class ThirdPartyVpnMockAdaptor : public ThirdPartyVpnStubAdaptor {
public:
ThirdPartyVpnMockAdaptor();
~ThirdPartyVpnMockAdaptor() override;
MOCK_METHOD(void, EmitPlatformMessage, (uint32_t), (override));
};
#endif
} // namespace shill
#endif // SHILL_MOCK_ADAPTORS_H_