| //! 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)); |
| } |