use std::fs; use bard::util_cmd; mod util; pub use util::*; #[test] fn sort_lines() { let file = tmp_dir().join("test-file-sort-lines"); let content_to_sort = r#"xxx foo bar baz=b foo bar baz=a foo bar baz=d foo bar baz=č xxx foo bar baz=b foo bar baz=a foo bar baz=c xxx "#; let expected = r#"xxx foo bar baz=a foo bar baz=b foo bar baz=č foo bar baz=d xxx foo bar baz=a foo bar baz=b foo bar baz=c xxx "#; fs::write(&file, content_to_sort.as_bytes()).unwrap(); let count = util_cmd::sort_lines(r#"baz=(.+)$"#, &file).unwrap(); let sorted_content = fs::read_to_string(&file).unwrap(); assert_eq!(sorted_content, expected); assert_eq!(count, 7); } #[test] fn sort_lines_no_capture_group() { let file = tmp_dir().join("test-file-sort-lines-no-capture-group"); let content_to_sort = "foo bar baz=b\n"; fs::write(&file, content_to_sort.as_bytes()).unwrap(); util_cmd::sort_lines(r#"baz=.+$"#, file).unwrap_err(); } #[test] fn sort_lines_no_match() { let file = tmp_dir().join("test-file-sort-lines-no-match"); let content_to_sort = r#"xxx yyy zzz "#; fs::write(&file, content_to_sort.as_bytes()).unwrap(); let count = util_cmd::sort_lines(r#"baz=(.+)$"#, file).unwrap(); assert_eq!(count, 0); }