use crate::domain::model::check::CheckViolation;
use crate::domain::model::decision_record::DecisionRecordEdit;
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct DecisionRecordFinding {
pub violation: CheckViolation,
pub fix: Option<DecisionRecordEdit>,
}
impl DecisionRecordFinding {
pub fn report(violation: CheckViolation) -> Self {
Self {
violation,
fix: None,
}
}
}
#[cfg(test)]
pub mod strategy {
use super::DecisionRecordFinding;
use crate::domain::model::check::check_violation::strategy::check_violation;
use crate::domain::model::decision_record::edit::strategy::decision_record_edit;
use proptest::prelude::*;
prop_compose! {
pub fn decision_record_finding()(
violation in check_violation(),
fix in proptest::option::of(decision_record_edit()),
) -> DecisionRecordFinding {
DecisionRecordFinding { violation, fix }
}
}
}
#[cfg(test)]
mod tests {
use super::*;
use proptest::prelude::*;
proptest! {
#[test]
fn report_carries_no_fix(v in crate::domain::model::check::check_violation::strategy::check_violation()) {
prop_assert!(DecisionRecordFinding::report(v).fix.is_none());
}
}
}