use secfinding::*;
use secfinding::status::*;
use super::*;
#[test]
fn finding_status_default_is_open() {
assert_eq!(FindingStatus::default(), FindingStatus::Open);
}
#[test]
fn finding_status_labels() {
assert_eq!(FindingStatus::Open.label(), "OPEN");
assert_eq!(FindingStatus::Confirmed.label(), "CONF");
assert_eq!(FindingStatus::FalsePositive.label(), "F/P");
assert_eq!(FindingStatus::Resolved.label(), "FIXD");
}
#[test]
fn finding_status_display() {
assert_eq!(FindingStatus::Open.to_string(), "open");
assert_eq!(FindingStatus::Confirmed.to_string(), "confirmed");
assert_eq!(FindingStatus::FalsePositive.to_string(), "false_positive");
assert_eq!(FindingStatus::Resolved.to_string(), "resolved");
}
#[test]
fn finding_status_serde_roundtrip() {
for status in [
FindingStatus::Open,
FindingStatus::Confirmed,
FindingStatus::FalsePositive,
FindingStatus::Resolved,
] {
let json = serde_json::to_string(&status).unwrap();
let back: FindingStatus = serde_json::from_str(&json).unwrap();
assert_eq!(status, back);
}
}
#[test]
fn finding_status_serde_snake_case() {
let open: FindingStatus = serde_json::from_str("\"open\"").unwrap();
assert_eq!(open, FindingStatus::Open);
let confirmed: FindingStatus = serde_json::from_str("\"confirmed\"").unwrap();
assert_eq!(confirmed, FindingStatus::Confirmed);
let fp: FindingStatus = serde_json::from_str("\"false_positive\"").unwrap();
assert_eq!(fp, FindingStatus::FalsePositive);
let resolved: FindingStatus = serde_json::from_str("\"resolved\"").unwrap();
assert_eq!(resolved, FindingStatus::Resolved);
}
#[test]
fn finding_status_equality() {
assert_eq!(FindingStatus::Open, FindingStatus::Open);
assert_ne!(FindingStatus::Open, FindingStatus::Confirmed);
assert_eq!(FindingStatus::Resolved, FindingStatus::Resolved);
}
#[test]
fn finding_status_copy() {
let s1 = FindingStatus::Open;
let s2 = s1;
assert_eq!(s1, FindingStatus::Open);
assert_eq!(s2, FindingStatus::Open);
}