zyn 0.5.4

A proc macro framework with templates, composable elements, and built-in diagnostics
Documentation
use zyn::mark::Level;

#[test]
fn level_empty_is_none() {
    assert_eq!(zyn::mark::new().build().level(), Level::None);
}

#[test]
fn level_error_only() {
    let d = zyn::mark::error("err").build();
    assert_eq!(d.level(), Level::Error);
}

#[test]
fn level_warning_only() {
    let d = zyn::mark::new().add(zyn::mark::warning("w")).build();
    assert_eq!(d.level(), Level::Warning);
}

#[test]
fn level_note_only() {
    let d = zyn::mark::new().add(zyn::mark::note("n")).build();
    assert_eq!(d.level(), Level::Note);
}

#[test]
fn level_help_only() {
    let d = zyn::mark::new().add(zyn::mark::help("h")).build();
    assert_eq!(d.level(), Level::Help);
}

#[test]
fn level_error_beats_warning() {
    let d = zyn::mark::new()
        .add(zyn::mark::warning("w"))
        .add(zyn::mark::error("e"))
        .build();
    assert_eq!(d.level(), Level::Error);
}

#[test]
fn level_warning_beats_note() {
    let d = zyn::mark::new()
        .add(zyn::mark::note("n"))
        .add(zyn::mark::warning("w"))
        .build();
    assert_eq!(d.level(), Level::Warning);
}

#[test]
fn level_warning_beats_help() {
    let d = zyn::mark::new()
        .add(zyn::mark::help("h"))
        .add(zyn::mark::warning("w"))
        .build();
    assert_eq!(d.level(), Level::Warning);
}

#[test]
fn level_all_four_returns_error() {
    let d = zyn::mark::new()
        .add(zyn::mark::note("n"))
        .add(zyn::mark::help("h"))
        .add(zyn::mark::warning("w"))
        .add(zyn::mark::error("e"))
        .build();
    assert_eq!(d.level(), Level::Error);
}

#[test]
fn is_error_with_error() {
    let d = zyn::mark::error("e").build();
    assert!(d.is_error());
}

#[test]
fn is_error_false_when_empty() {
    assert!(!zyn::mark::new().build().is_error());
}

#[test]
fn is_error_false_with_only_warnings() {
    let d = zyn::mark::new().add(zyn::mark::warning("w")).build();
    assert!(!d.is_error());
}

#[test]
fn is_error_false_with_note_and_help() {
    let d = zyn::mark::new()
        .add(zyn::mark::note("n"))
        .add(zyn::mark::help("h"))
        .build();
    assert!(!d.is_error());
}

#[test]
fn is_error_true_with_mixed_levels() {
    let d = zyn::mark::new()
        .add(zyn::mark::warning("w"))
        .add(zyn::mark::note("n"))
        .add(zyn::mark::error("e"))
        .build();
    assert!(d.is_error());
}