use std::sync::Arc;
use fathomdb_engine::lifecycle::{Event, Subscriber};
use fathomdb_engine::{CounterSnapshot, Engine, Subscription};
use tempfile::TempDir;
struct NoopSubscriber;
impl Subscriber for NoopSubscriber {
fn on_event(&self, _event: &Event) {}
}
fn fixture() -> (TempDir, Engine) {
let dir = TempDir::new().unwrap();
let engine =
Engine::open(dir.path().join("instrumentation.sqlite")).expect("engine open").engine;
(dir, engine)
}
#[test]
fn drain_returns_ok_on_open_engine() {
let (_dir, engine) = fixture();
engine.drain(0).expect("idle engine drain should return Ok");
}
#[test]
fn counters_returns_snapshot_carrier() {
let (_dir, engine) = fixture();
let _: CounterSnapshot = engine.counters();
}
#[test]
fn set_profiling_accepts_bool() {
let (_dir, engine) = fixture();
engine.set_profiling(true).expect("set_profiling stub");
engine.set_profiling(false).expect("set_profiling stub");
}
#[test]
fn set_slow_threshold_accepts_u64() {
let (_dir, engine) = fixture();
engine.set_slow_threshold_ms(0).expect("set_slow_threshold_ms stub");
engine.set_slow_threshold_ms(1_000).expect("set_slow_threshold_ms stub");
}
#[test]
fn subscribe_returns_subscription_carrier() {
let (_dir, engine) = fixture();
let _: Subscription = engine.subscribe(Arc::new(NoopSubscriber));
}