roscal_lib 0.1.0

Open Security Controls Assessment Language In Rust
Documentation
use std::{fs::File, io::BufReader};

use roscal_lib::{
    control::profile::Profile, implementation::ssp::SystemSecurityPlan,
};

#[test]
fn wrong_date() {
    let file = File::open("tests/malformed/date.yaml").unwrap();
    let reader = BufReader::new(file);
    let res: Result<SystemSecurityPlan, serde_yaml::Error> =
        serde_yaml::from_reader(reader);

    let e = res.err().unwrap().to_string();

    assert_eq!("system-security-plan.system-characteristics: invalid date pattern at line 54 column 5", e)
}

#[test]
fn wrong_datetime() {
    let file = File::open("tests/malformed/datetime.yaml").unwrap();
    let reader = BufReader::new(file);
    let res: Result<Profile, serde_yaml::Error> =
        serde_yaml::from_reader(reader);

    let e = res.err().unwrap().to_string();

    assert_eq!(
        "profile.metadata: invalid datetime pattern at line 4 column 5",
        e
    )
}

#[test]
fn wrong_email() {
    let file = File::open("tests/malformed/email.yaml").unwrap();
    let reader = BufReader::new(file);
    let res: Result<Profile, serde_yaml::Error> =
        serde_yaml::from_reader(reader);

    let e = res.err().unwrap().to_string();

    assert_eq!("profile.metadata.parties[0]: invalid email pattern at line 14 column 9", e)
}

#[test]
fn wrong_uri() {
    let file = File::open("tests/malformed/uri.yaml").unwrap();
    let reader = BufReader::new(file);
    let res: Result<Profile, serde_yaml::Error> =
        serde_yaml::from_reader(reader);

    let e = res.err().unwrap().to_string();

    assert_eq!("profile.back-matter.resources[0].rlinks[0]: invalid uri reference pattern at line 416 column 13", e)
}

#[test]
fn wrong_uuid() {
    let file = File::open("tests/malformed/uuid.yaml").unwrap();
    let reader = BufReader::new(file);
    let res: Result<Profile, serde_yaml::Error> =
        serde_yaml::from_reader(reader);

    let e = res.err().unwrap().to_string();

    assert_eq!("profile: invalid uuid pattern at line 2 column 3", e)
}