aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/cli.rs49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/cli.rs b/tests/cli.rs
new file mode 100644
index 0000000..09e42e9
--- /dev/null
+++ b/tests/cli.rs
@@ -0,0 +1,49 @@
+use std::process::Command; // Run programs
+use assert_cmd::prelude::*; // Add methods on commands
+use predicates::prelude::*; // Used for writing assertions
+
+#[test]
+fn test_help() {
+ let mut cmd = Command::cargo_bin("fpm").unwrap();
+ cmd.arg("--help");
+ cmd.assert()
+ .success()
+ .stdout(
+ predicate::str::contains("--help Prints help information"));
+}
+
+#[test]
+fn test_1() {
+ let mut build = Command::cargo_bin("fpm").unwrap();
+ build.arg("build")
+ .current_dir("tests/1");
+ build.assert()
+ .success()
+ .stdout(predicate::str::contains("Built target p1")
+ .and(predicate::str::contains("TEST1 OK").not()));
+
+ let mut run = Command::cargo_bin("fpm").unwrap();
+ run.arg("run")
+ .current_dir("tests/1");
+ run.assert()
+ .success()
+ .stdout(predicate::str::contains("TEST1 OK"));
+}
+
+#[test]
+fn test_2() {
+ let mut build = Command::cargo_bin("fpm").unwrap();
+ build.arg("build")
+ .current_dir("tests/2");
+ build.assert()
+ .success()
+ .stdout(predicate::str::contains("Built target p1")
+ .and(predicate::str::contains("TEST2 OK").not()));
+
+ let mut run = Command::cargo_bin("fpm").unwrap();
+ run.arg("run")
+ .current_dir("tests/2");
+ run.assert()
+ .success()
+ .stdout(predicate::str::contains("TEST2 OK"));
+}