blob: 638337a74f64dcb75c5daa1de6ef90c3fa4faeec [file] [log] [blame]
Avi Drissman8ba1bad2022-09-13 19:22:361// Copyright 2021 The Chromium Authors
Ahmed Nasrab0e5822021-11-10 22:29:052// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Ahmed Nasr9e4777052022-11-02 20:38:395#include "components/reporting/metrics/fakes/fake_sampler.h"
Ahmed Nasrab0e5822021-11-10 22:29:056
Ahmed Nasr27cd9f4e2021-11-12 22:49:407#include <utility>
8
Ahmed Nasrd9af70c2022-09-02 17:45:109#include "base/check.h"
Ahmed Nasr27cd9f4e2021-11-12 22:49:4010#include "base/location.h"
11#include "base/run_loop.h"
12#include "base/threading/sequenced_task_runner_handle.h"
13#include "testing/gtest/include/gtest/gtest.h"
14
Ahmed Nasrab0e5822021-11-10 22:29:0515namespace reporting {
16namespace test {
17
Ahmed Nasrc4e332b2022-04-29 00:51:5418FakeSampler::FakeSampler() = default;
19
20FakeSampler::~FakeSampler() = default;
21
Ahmed Nasrc4e332b2022-04-29 00:51:5422void FakeSampler::MaybeCollect(OptionalMetricCallback cb) {
Ahmed Nasrd9af70c2022-09-02 17:45:1023 ++num_calls_;
Ahmed Nasra055e522021-12-20 21:09:4124 std::move(cb).Run(metric_data_);
Ahmed Nasrab0e5822021-11-10 22:29:0525}
26
Ahmed Nasrc4e332b2022-04-29 00:51:5427void FakeSampler::SetMetricData(absl::optional<MetricData> metric_data) {
Ahmed Nasrab0e5822021-11-10 22:29:0528 metric_data_ = std::move(metric_data);
29}
30
31int FakeSampler::GetNumCollectCalls() const {
32 return num_calls_;
33}
Ahmed Nasr27cd9f4e2021-11-12 22:49:4034
Ahmed Nasrd9af70c2022-09-02 17:45:1035FakeDelayedSampler::FakeDelayedSampler() = default;
36
37FakeDelayedSampler::~FakeDelayedSampler() = default;
38
39void FakeDelayedSampler::MaybeCollect(OptionalMetricCallback cb) {
40 ++num_calls_;
41 cb_ = std::move(cb);
42}
43
44void FakeDelayedSampler::RunCallback() {
45 DCHECK(cb_);
46 std::move(cb_).Run(metric_data_);
47}
48
Ahmed Nasr27cd9f4e2021-11-12 22:49:4049FakeMetricEventObserver::FakeMetricEventObserver() = default;
50
51FakeMetricEventObserver::~FakeMetricEventObserver() = default;
52
53void FakeMetricEventObserver::SetOnEventObservedCallback(
54 MetricRepeatingCallback cb) {
55 EXPECT_FALSE(cb_);
56 cb_ = std::move(cb);
57}
58
59void FakeMetricEventObserver::SetReportingEnabled(bool is_enabled) {
60 is_reporting_enabled_ = is_enabled;
61}
62
63void FakeMetricEventObserver::RunCallback(MetricData metric_data) {
64 base::RunLoop run_loop;
65 cb_.Run(std::move(metric_data));
66 base::SequencedTaskRunnerHandle::Get()->PostTask(FROM_HERE,
67 run_loop.QuitClosure());
68 run_loop.Run();
69}
70
71bool FakeMetricEventObserver::GetReportingEnabled() const {
72 return is_reporting_enabled_;
73}
Ahmed Nasrab0e5822021-11-10 22:29:0574} // namespace test
75} // namespace reporting