use secfinding::{Finding, Reportable, Severity};
#[test]
fn finding_implements_reportable() {
let f = Finding::builder("scanner", "target", Severity::High)
.title("Test Finding")
.detail("Some detail here")
.build()
.unwrap();
assert_eq!(f.scanner(), "scanner");
assert_eq!(f.target(), "target");
assert_eq!(f.severity(), Severity::High);
assert_eq!(f.title(), "Test Finding");
assert_eq!(f.detail(), "Some detail here");
}
#[test]
fn default_trait_methods_return_none() {
struct MinimalFinding;
impl Reportable for MinimalFinding {
fn scanner(&self) -> &str {
"min"
}
fn target(&self) -> &str {
"target"
}
fn severity(&self) -> Severity {
Severity::Info
}
fn title(&self) -> &str {
"min"
}
}
let f = MinimalFinding;
assert!(f.detail().is_empty());
assert!(f.location().is_none());
assert!(f.evidence().is_empty());
assert!(f.cve_ids().is_empty());
assert!(f.cwe_ids().is_empty());
assert!(f.cvss_score().is_none());
assert!(f.exploit_hint().is_none());
assert!(f.remediation().is_none());
assert!(f.tags().is_empty());
}