use daemon_lib::core::{Daemon, DaemonState};
use daemon_lib::error::DaemonError;
#[test]
fn test_daemon_lifecycle() {
let daemon = Daemon::new();
assert_eq!(daemon.get_state(), DaemonState::Offline);
daemon.start(|| Ok(())).unwrap();
assert_eq!(daemon.get_state(), DaemonState::Running);
daemon.stop(|| Ok(())).unwrap();
assert_eq!(daemon.get_state(), DaemonState::Offline);
let result = daemon.start(|| Err(DaemonError::CustomError("Test error".to_string())));
assert!(result.is_err());
assert_eq!(daemon.get_state(), DaemonState::Errored);
}