use std::fs::{copy, create_dir_all};
use std::path::Path;
-use crate::file_handler::{File, FileHandlerStrategy, FileType};
+use crate::file_handler::{File, FileType, Strategy as FileHandlerStrategy};
impl Strategy {
- fn handle(&self, source: &Path, destination: &Path, file: &File) {
+ fn handle(source: &Path, destination: &Path, file: &File) {
let relative_path = file.path.strip_prefix(source).unwrap();
let complete_destination = destination.join(relative_path);
let destination_parent = complete_destination.parent().unwrap();
}
fn handle_html(&self, source: &Path, destination: &Path, file: &File, _l: &str) {
- self.handle(source, destination, file)
+ Strategy::handle(source, destination, file);
}
fn handle_gemini(&self, source: &Path, destination: &Path, file: &File) {
- self.handle(source, destination, file)
+ Strategy::handle(source, destination, file);
}
}
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 strategy = Strategy {};
let file = File {
path: source_dir.join("image.png"),
file_type: FileType::File,
};
- strategy.handle(&source_dir, &output_dir, &file);
+ Strategy::handle(&source_dir, &output_dir, &file);
let copied_path = &output_dir.join("image.png");
assert!(copied_path.exists());
// Verify file contents are identical
let original = fs::read(&file.path).unwrap();
- let copied = fs::read(&copied_path).unwrap();
+ let copied = fs::read(copied_path).unwrap();
assert_eq!(original, copied);
}
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_dir_all(&source_dir.join("nested")).expect("Could not create source test directory");
+ create_dir_all(source_dir.join("nested")).expect("Could not create source test directory");
create_test_file(
&source_dir.join("nested/style.css"),
"* { margin: 0; padding: 0 }",
);
- let strategy = Strategy {};
let file = File {
path: source_dir.join("nested/style.css"),
file_type: FileType::File,
};
- strategy.handle(&source_dir, &output_dir, &file);
+ Strategy::handle(&source_dir, &output_dir, &file);
let copied_path = output_dir.join("nested/style.css");
assert!(copied_path.exists());
// Verify file contents are identical
let original = fs::read(&file.path).unwrap();
- let copied = fs::read(&copied_path).unwrap();
+ let copied = fs::read(copied_path).unwrap();
assert_eq!(original, copied);
}
// Verify file contents are identical
let original = fs::read(&file.path).unwrap();
- let copied = fs::read(&copied_path).unwrap();
+ let copied = fs::read(copied_path).unwrap();
assert_eq!(original, copied);
}
}