use chrono::{DateTime, Utc};
use serde::{Deserialize, Serialize};
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct StepDependency {
pub step_id: Uuid,
pub depends_on: Uuid,
pub created_at: DateTime<Utc>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NewStepDependency {
pub step_id: Uuid,
pub depends_on: Uuid,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn step_dependency_serde_roundtrip() {
let dep = StepDependency {
step_id: Uuid::nil(),
depends_on: Uuid::nil(),
created_at: Utc::now(),
};
let json = serde_json::to_string(&dep).expect("serialize");
let back: StepDependency = serde_json::from_str(&json).expect("deserialize");
assert_eq!(back.step_id, dep.step_id);
assert_eq!(back.depends_on, dep.depends_on);
}
#[test]
fn new_step_dependency_serde_roundtrip() {
let dep = NewStepDependency {
step_id: Uuid::nil(),
depends_on: Uuid::nil(),
};
let json = serde_json::to_string(&dep).expect("serialize");
let back: NewStepDependency = serde_json::from_str(&json).expect("deserialize");
assert_eq!(back.step_id, dep.step_id);
}
}