ares_agent/
external_context.rs1use cordis::Service;
2
3pub struct ExternalContext(pub String);
5
6impl Service for ExternalContext {}
7
8#[cfg(test)]
9mod tests {
10 use super::ExternalContext;
11 use cordis::Context;
12
13 #[test]
14 fn eruka_context_defaults_to_none() {
15 let ctx = Context::new_root();
16 assert!(ctx.get::<ExternalContext>().is_none());
17 }
18
19 #[test]
20 fn eruka_context_set_and_get_round_trip() {
21 let ctx = Context::new_root();
22 ctx.provide(ExternalContext("binding-42".into()));
23 assert_eq!(
24 ctx.get::<ExternalContext>().as_deref().map(|e| e.0.as_str()),
25 Some("binding-42")
26 );
27 }
28
29 #[test]
30 fn eruka_context_intercept_replaces_previous_value() {
31 let ctx = Context::new_root().with_intercept(ExternalContext("first".into()));
32 let ctx = ctx.with_intercept(ExternalContext("second".into()));
33 assert_eq!(
34 ctx.get::<ExternalContext>().as_deref().map(|e| e.0.as_str()),
35 Some("second")
36 );
37 }
38}