omaha_client/metrics/stub.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
// Copyright 2019 The Fuchsia Authors
//
// Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
// <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
// license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
// This file may not be copied, modified, or distributed except according to
// those terms.
use crate::metrics::{Metrics, MetricsReporter};
use anyhow::Error;
use tracing::info;
/// A stub implementation of MetricsReporter which only log metrics.
#[derive(Debug)]
pub struct StubMetricsReporter;
impl MetricsReporter for StubMetricsReporter {
fn report_metrics(&mut self, metrics: Metrics) -> Result<(), Error> {
info!("Received request to report metrics: {:?}", metrics);
Ok(())
}
}
#[cfg(test)]
mod tests {
use super::*;
use std::time::Duration;
#[test]
fn test_stub_metrics_reporter() {
let mut stub = StubMetricsReporter;
let result = stub.report_metrics(Metrics::UpdateCheckResponseTime {
response_time: Duration::from_secs(2),
successful: true,
});
assert!(result.is_ok(), "{result:?}");
}
}