tcrm-task 0.4.2

Task execution unit for TCRM project
Documentation
use std::time::UNIX_EPOCH;

use crate::tasks::{control::TaskStatusInfo, tokio::executor::TaskExecutor};

pub(crate) fn expected_started_executor_state(executor: &TaskExecutor) {
    assert!(executor.get_process_id().is_some());
    assert!(
        executor
            .get_create_at()
            .duration_since(UNIX_EPOCH)
            .unwrap()
            .as_nanos()
            > 0
    );
    assert!(executor.get_running_at().is_some());
    assert!(executor.get_exit_code().is_none());
    assert!(executor.get_finished_at().is_none());
}

pub(crate) fn expected_completed_executor_state(executor: &TaskExecutor) {
    expected_stopped_executor_state(&executor);
    assert!(executor.get_running_at().unwrap() <= executor.get_finished_at().unwrap());
}
pub(crate) fn expected_stopped_executor_state(executor: &TaskExecutor) {
    assert!(executor.get_process_id().is_none());
    assert!(
        executor
            .get_create_at()
            .duration_since(UNIX_EPOCH)
            .unwrap()
            .as_nanos()
            > 0
    );
    assert!(executor.get_finished_at().is_some());
}