blob: c8a8af0a0bb1b79182d094292ed4ed67589a1328 [file] [log] [blame]
Ahmed Nasrab0e5822021-11-10 22:29:051// Copyright 2021 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "components/reporting/metrics/fake_sampler.h"
6
Ahmed Nasr27cd9f4e2021-11-12 22:49:407#include <utility>
8
9#include "base/location.h"
10#include "base/run_loop.h"
11#include "base/threading/sequenced_task_runner_handle.h"
12#include "testing/gtest/include/gtest/gtest.h"
13
Ahmed Nasrab0e5822021-11-10 22:29:0514namespace reporting {
15namespace test {
16
Ahmed Nasrc4e332b2022-04-29 00:51:5417FakeSampler::FakeSampler() = default;
18
19FakeSampler::~FakeSampler() = default;
20
Ahmed Nasrab0e5822021-11-10 22:29:0521void FakeSampler::Collect(MetricCallback cb) {
Ahmed Nasrc4e332b2022-04-29 00:51:5422 ASSERT_TRUE(metric_data_.has_value());
23 num_calls_++;
24 std::move(cb).Run(metric_data_.value());
25}
26
27void FakeSampler::MaybeCollect(OptionalMetricCallback cb) {
Ahmed Nasrab0e5822021-11-10 22:29:0528 num_calls_++;
Ahmed Nasra055e522021-12-20 21:09:4129 std::move(cb).Run(metric_data_);
Ahmed Nasrab0e5822021-11-10 22:29:0530}
31
Ahmed Nasrc4e332b2022-04-29 00:51:5432void FakeSampler::SetMetricData(absl::optional<MetricData> metric_data) {
Ahmed Nasrab0e5822021-11-10 22:29:0533 metric_data_ = std::move(metric_data);
34}
35
36int FakeSampler::GetNumCollectCalls() const {
37 return num_calls_;
38}
Ahmed Nasr27cd9f4e2021-11-12 22:49:4039
40FakeMetricEventObserver::FakeMetricEventObserver() = default;
41
42FakeMetricEventObserver::~FakeMetricEventObserver() = default;
43
44void FakeMetricEventObserver::SetOnEventObservedCallback(
45 MetricRepeatingCallback cb) {
46 EXPECT_FALSE(cb_);
47 cb_ = std::move(cb);
48}
49
50void FakeMetricEventObserver::SetReportingEnabled(bool is_enabled) {
51 is_reporting_enabled_ = is_enabled;
52}
53
54void FakeMetricEventObserver::RunCallback(MetricData metric_data) {
55 base::RunLoop run_loop;
56 cb_.Run(std::move(metric_data));
57 base::SequencedTaskRunnerHandle::Get()->PostTask(FROM_HERE,
58 run_loop.QuitClosure());
59 run_loop.Run();
60}
61
62bool FakeMetricEventObserver::GetReportingEnabled() const {
63 return is_reporting_enabled_;
64}
Ahmed Nasrab0e5822021-11-10 22:29:0565} // namespace test
66} // namespace reporting