blob: fa6f57d78683c62f514769f44ffa704946d45236 [file] [log] [blame]
// 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.
#include "shill/cellular/mock_modem_info.h"
using testing::NiceMock;
namespace shill {
MockModemInfo::MockModemInfo()
: ModemInfo(nullptr, nullptr, nullptr, nullptr),
mock_pending_activation_store_(nullptr) {}
MockModemInfo::MockModemInfo(ControlInterface* control,
EventDispatcher* dispatcher,
Metrics* metrics,
Manager* manager)
: ModemInfo(control, dispatcher, metrics, manager),
mock_pending_activation_store_(nullptr) {
SetMockMembers();
}
MockModemInfo::~MockModemInfo() = default;
void MockModemInfo::SetMockMembers() {
// These are always replaced by mocks.
// Assumes ownership.
pending_activation_store_ = std::make_unique<MockPendingActivationStore>();
mock_pending_activation_store_ =
static_cast<MockPendingActivationStore*>(pending_activation_store_.get());
// These are replaced by mocks only if current unset in ModemInfo.
if (!control_interface_) {
mock_control_.reset(new MockControl());
control_interface_ = mock_control_.get();
}
if (!dispatcher_) {
mock_dispatcher_.reset(new MockEventDispatcher());
dispatcher_ = mock_dispatcher_.get();
}
if (!metrics_) {
mock_metrics_.reset(new MockMetrics());
metrics_ = mock_metrics_.get();
}
if (!manager_) {
mock_manager_.reset(new NiceMock<MockManager>(control_interface(),
dispatcher(), metrics()));
manager_ = mock_manager_.get();
}
}
} // namespace shill