diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-04-05 19:08:13 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-04-05 19:08:13 +0200 |
| commit | 93c6a678b398cdfacb0d18ad499c3321a44ff31f (patch) | |
| tree | 309f6e21db7a61a713fcc04a6338414c43e74dee /src | |
| parent | 0846a41c7973e4c28e35ad8e4b3ac28d0e791df8 (diff) | |
Add tests for new failing cases
Diffstat (limited to 'src')
| -rw-r--r-- | src/file_handler/file_strategies/file.rs | 33 |
1 files changed, 33 insertions, 0 deletions
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()); + } } |