blob: 3e493222ab3c86724617fbcc14958502f6e48fb7 [file] [log] [blame]
//! Tests for parsing RustSec advisories
#![warn(rust_2018_idioms, unused_qualifications)]
use rustsec::{advisory::Severity, database::Query, package};
/// Load example advisory from the filesystem
fn load_advisory() -> rustsec::Advisory {
rustsec::Advisory::load_file("./tests/support/example_advisory_v3.md").unwrap()
}
#[test]
fn matches_name() {
let advisory = load_advisory();
let package_matches: package::Name = "base".parse().unwrap();
let query_matches = Query::new().package_name(package_matches);
assert!(query_matches.matches(&advisory));
let package_nomatch: package::Name = "somethingelse".parse().unwrap();
let query_nomatch = Query::new().package_name(package_nomatch);
assert!(!query_nomatch.matches(&advisory));
}
#[test]
fn matches_year() {
let advisory = load_advisory();
let query_matches = Query::new().year(2001);
assert!(query_matches.matches(&advisory));
let query_nomatch = Query::new().year(2525);
assert!(!query_nomatch.matches(&advisory));
}
#[test]
fn matches_severity() {
let advisory = load_advisory();
let query_matches = Query::new().severity(Severity::Critical);
assert!(query_matches.matches(&advisory));
}