use coerce::actor::context::ActorStatus; use coerce::actor::system::ActorSystem; use coerce::actor::ActorRefErr; use util::*; pub mod util; #[macro_use] extern crate serde; #[macro_use] extern crate async_trait; #[tokio::test] pub async fn test_actor_lifecycle_started() { let actor_ref = ActorSystem::new() .new_anon_actor(TestActor::new()) .await .unwrap(); let status = actor_ref.status().await; actor_ref.stop().await.expect("actor stop"); assert_eq!(status, Ok(ActorStatus::Started)) } #[tokio::test] pub async fn test_actor_lifecycle_stopping() { let actor_ref = ActorSystem::new() .new_anon_actor(TestActor::new()) .await .unwrap(); let status = actor_ref.status().await; let stopping = actor_ref.stop().await; let msg_send = actor_ref.status().await; assert_eq!(status, Ok(ActorStatus::Started)); assert_eq!(stopping, Ok(())); assert_eq!(msg_send, Err(ActorRefErr::InvalidRef)); }