pub struct TestDaemonContext {
pub daemon_name: String,
pub instance_id: Uuid,
pub shutdown_tx: Sender<bool>,
/* private fields */
}Expand description
Test context for daemon functions.
Provides an isolated testing environment for daemons with shutdown signal control, HTTP mocking, and optional database access.
§Example
ⓘ
let ctx = TestDaemonContext::builder("heartbeat_daemon")
.with_pool(db_pool)
.build();
// Test shutdown handling
assert!(!ctx.is_shutdown_requested());
ctx.request_shutdown();
assert!(ctx.is_shutdown_requested());Fields§
§daemon_name: StringDaemon name.
instance_id: UuidUnique instance ID.
shutdown_tx: Sender<bool>Shutdown signal sender (for triggering shutdown in tests).
Implementations§
Source§impl TestDaemonContext
impl TestDaemonContext
Sourcepub fn builder(daemon_name: impl Into<String>) -> TestDaemonContextBuilder
pub fn builder(daemon_name: impl Into<String>) -> TestDaemonContextBuilder
Create a new builder.
Sourcepub fn is_shutdown_requested(&self) -> bool
pub fn is_shutdown_requested(&self) -> bool
Check if shutdown has been requested.
Sourcepub fn request_shutdown(&self)
pub fn request_shutdown(&self)
Request shutdown (trigger from test).
Sourcepub async fn shutdown_signal(&self)
pub async fn shutdown_signal(&self)
Wait for shutdown signal.
Use this in a tokio::select! to handle graceful shutdown:
ⓘ
tokio::select! {
_ = tokio::time::sleep(Duration::from_secs(60)) => {}
_ = ctx.shutdown_signal() => break,
}Sourcepub fn env_mock(&self) -> &MockEnvProvider
pub fn env_mock(&self) -> &MockEnvProvider
Get the mock env provider for verification.
Trait Implementations§
Source§impl EnvAccess for TestDaemonContext
impl EnvAccess for TestDaemonContext
Source§fn env_provider(&self) -> &dyn EnvProvider
fn env_provider(&self) -> &dyn EnvProvider
Get the environment provider.
Source§fn env_or(&self, key: &str, default: &str) -> String
fn env_or(&self, key: &str, default: &str) -> String
Get an environment variable with a default value. Read more
Source§fn env_require(&self, key: &str) -> Result<String>
fn env_require(&self, key: &str) -> Result<String>
Get a required environment variable. Read more
Source§fn env_parse<T: FromStr>(&self, key: &str) -> Result<T>
fn env_parse<T: FromStr>(&self, key: &str) -> Result<T>
Get an environment variable and parse it to the specified type. Read more
Source§fn env_parse_or<T: FromStr>(&self, key: &str, default: T) -> Result<T>
fn env_parse_or<T: FromStr>(&self, key: &str, default: T) -> Result<T>
Get an environment variable and parse it, with a default. Read more
Source§fn env_contains(&self, key: &str) -> bool
fn env_contains(&self, key: &str) -> bool
Check if an environment variable is set.
Auto Trait Implementations§
impl !Freeze for TestDaemonContext
impl !RefUnwindSafe for TestDaemonContext
impl Send for TestDaemonContext
impl Sync for TestDaemonContext
impl Unpin for TestDaemonContext
impl !UnwindSafe for TestDaemonContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more