bottom/tests/arg_rate_tests.rs

53 lines
1.2 KiB
Rust
Raw Normal View History

2019-09-16 22:39:57 -04:00
use assert_cmd::prelude::*;
2019-09-14 22:29:40 -04:00
use predicates::prelude::*;
2019-09-16 22:39:57 -04:00
use std::process::Command;
2019-09-14 22:29:40 -04:00
//======================RATES======================//
2019-09-14 22:29:40 -04:00
#[test]
fn test_small_rate() -> Result<(), Box<dyn std::error::Error>> {
2019-09-16 23:34:34 -04:00
Command::new("./target/debug/bottom")
2019-09-14 22:29:40 -04:00
.arg("-r")
.arg("249")
.assert()
.failure()
.stderr(predicate::str::contains("rate to be greater than 250"));
Ok(())
}
#[test]
fn test_large_rate() -> Result<(), Box<dyn std::error::Error>> {
2019-09-16 23:34:34 -04:00
Command::new("./target/debug/bottom")
.arg("-r")
.arg("18446744073709551616")
.assert()
.failure()
.stderr(predicate::str::contains("rate to be less than unsigned INT_MAX."));
Ok(())
}
2019-09-14 22:29:40 -04:00
#[test]
fn test_negative_rate() -> Result<(), Box<dyn std::error::Error>> {
// This test should auto fail due to how clap works
2019-09-16 23:34:34 -04:00
Command::new("./target/debug/bottom")
2019-09-14 22:29:40 -04:00
.arg("-r")
.arg("-1000")
.assert()
.failure()
.stderr(predicate::str::contains("wasn't expected, or isn't valid in this context"));
Ok(())
}
#[test]
fn test_invalid_rate() -> Result<(), Box<dyn std::error::Error>> {
2019-09-16 23:34:34 -04:00
Command::new("./target/debug/bottom")
2019-09-14 22:29:40 -04:00
.arg("-r")
.arg("100-1000")
.assert()
.failure()
.stderr(predicate::str::contains("invalid digit"));
Ok(())
}