blob: 331ebc468b9800279fa636116a22d99832890f68 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/reporting/client/mock_report_queue.h"
#include <utility>
#include "testing/gmock/include/gmock/gmock.h"
using ::testing::Invoke;
namespace reporting {
MockReportQueueStrict::MockReportQueueStrict() {
// Default action makes a synchronous call to record_producer and passes the
// result over to plain-text mock AddRecord. Can be overridden, if necessary.
ON_CALL(*this, AddProducedRecord)
.WillByDefault(
Invoke(this, &MockReportQueueStrict::ForwardProducedRecord));
}
MockReportQueueStrict::~MockReportQueueStrict() = default;
void MockReportQueueStrict::ForwardProducedRecord(
RecordProducer record_producer,
Priority priority,
EnqueueCallback callback) {
auto record_result = std::move(record_producer).Run();
if (!record_result.has_value()) {
std::move(callback).Run(record_result.error());
return;
}
AddRecord(std::move(record_result.value()), priority, std::move(callback));
}
} // namespace reporting