From c7ed3ac13eb4985c409a1e5e1dbbe74481a15769 Mon Sep 17 00:00:00 2001 From: yannickreiss Date: Wed, 3 Sep 2025 00:36:09 +0200 Subject: [PATCH] Implement testcases for command rule --- src/tests.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/tests.rs diff --git a/src/tests.rs b/src/tests.rs new file mode 100644 index 0000000..abf0a8f --- /dev/null +++ b/src/tests.rs @@ -0,0 +1,40 @@ +#[cfg(test)] +use crate::tcl::commands; + +#[test] +fn test_commands_working() { + let testcase_1: &str = "cmd_a;cmd_b;cmd_c"; + let testcase_2: &str = "cmd_a\ncmd_b\ncmd_c"; + let verify: Vec = vec![ + String::from("cmd_a"), + String::from("cmd_b"), + String::from("cmd_c"), + ]; + + assert_eq!(commands(testcase_1), verify); + assert_eq!(commands(testcase_2), verify); +} + +#[test] +fn test_commands_quotes() { + let testcase_1: &str = "cmd_a\n\"cmd_b\"\ncmd_c"; + let verify_1: Vec = vec![ + String::from("cmd_a"), + String::from("\"cmd_b\""), + String::from("cmd_c"), + ]; + + let testcase_2: &str = "cmd_a;\"cmd_b;cmd_c\""; + let verify_2: Vec = vec![String::from("cmd_a"), String::from("\"cmd_b;cmd_c\"")]; + + let testcase_3: &str = "cmd_a;\"cmd_b\ncmd_c\""; + let verify_3: Vec = vec![String::from("cmd_a"), String::from("\"cmd_b\ncmd_c\"")]; + + let case_1 = commands(testcase_1); + let case_2 = commands(testcase_2); + let case_3 = commands(testcase_3); + + assert_eq!(case_1, verify_1); + assert_eq!(case_2, verify_2); + assert_eq!(case_3, verify_3); +}