From 93c6a678b398cdfacb0d18ad499c3321a44ff31f Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Sat, 5 Apr 2025 19:08:13 +0200 Subject: Add tests for new failing cases --- src/file_handler/file_strategies/file.rs | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src') diff --git a/src/file_handler/file_strategies/file.rs b/src/file_handler/file_strategies/file.rs index 09b94d3..af6bb65 100644 --- a/src/file_handler/file_strategies/file.rs +++ b/src/file_handler/file_strategies/file.rs @@ -209,4 +209,37 @@ mod tests { let copied = fs::read(copied_path).unwrap(); assert_eq!(original, copied); } + + #[test] + fn fails_if_file_is_not_part_of_source() { + let test_dir = setup_test_dir(); + let source_dir = test_dir.join("source"); + let output_dir = test_dir.join("output"); + create_dir_all(&source_dir).expect("Could not create source test directory"); + create_dir_all(&output_dir).expect("Could not create output test directory"); + create_test_file(&source_dir.join("image.png"), "A fish playing the banjo"); + + let file = File { + path: output_dir.join("image.png"), + file_type: FileType::File, + }; + + assert!(Strategy::handle(&source_dir, &output_dir, &file).is_err()); + } + + #[test] + fn fails_if_destination_parent_is_not_readable() { + let test_dir = setup_test_dir(); + let source_dir = test_dir.join("source"); + create_dir_all(&source_dir).expect("Could not create source test directory"); + create_test_file(&source_dir.join("image.png"), "A fish playing the banjo"); + let output_dir = Path::new(""); + + let file = File { + path: source_dir.clone(), + file_type: FileType::File, + }; + + assert!(Strategy::handle(&source_dir, output_dir, &file).is_err()); + } } -- cgit