]> git.r.bdr.sh - rbdr/page/blobdiff - src/file_handler/file_strategies/file.rs
Fix test
[rbdr/page] / src / file_handler / file_strategies / file.rs
index 603d1894e76feed4dffdd10e4d8d2917250fb829..363f71268d9b0afe30bc2457a5faf4c1dfdae586 100644 (file)
@@ -1,13 +1,13 @@
 pub struct Strategy {}
 
-use std::path::PathBuf;
 use std::fs::{copy, create_dir_all};
+use std::path::Path;
 
-use crate::file_handler::{File, FileType, FileHandlerStrategy};
+use crate::file_handler::{File, FileType, Strategy as FileHandlerStrategy};
 
 impl Strategy {
-    fn handle(&self, source: &PathBuf, destination: &PathBuf, file: &File) {
-        let relative_path = file.path.strip_prefix(&source).unwrap();
+    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();
         create_dir_all(destination_parent).unwrap();
@@ -16,7 +16,7 @@ impl Strategy {
 }
 
 impl FileHandlerStrategy for Strategy {
-    fn is(&self, path: &PathBuf) -> bool {
+    fn is(&self, path: &Path) -> bool {
         !path.is_dir()
     }
 
@@ -25,18 +25,15 @@ impl FileHandlerStrategy for Strategy {
     }
 
     fn can_handle(&self, file_type: &FileType) -> bool {
-        match file_type {
-            FileType::File => true,
-            _ => false,
-        }
+        matches!(file_type, FileType::File)
     }
 
-    fn handle_html(&self, source: &PathBuf, destination: &PathBuf, file: &File, _l: &str) {
-        return self.handle(source, destination, file);
+    fn handle_html(&self, source: &Path, destination: &Path, file: &File, _l: &str) {
+        Strategy::handle(source, destination, file);
     }
 
-    fn handle_gemini(&self, source: &PathBuf, destination: &PathBuf, file: &File) {
-        return self.handle(source, destination, file);
+    fn handle_gemini(&self, source: &Path, destination: &Path, file: &File) {
+        Strategy::handle(source, destination, file);
     }
 }
 
@@ -90,26 +87,23 @@ mod tests {
         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_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);
     }
 
@@ -118,21 +112,20 @@ mod tests {
         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_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 {};
+        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_test_file(
+            &source_dir.join("nested/style.css"),
+            "* { margin: 0; padding: 0 }",
+        );
 
         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());
@@ -148,10 +141,8 @@ mod tests {
         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_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 {};
 
@@ -167,7 +158,7 @@ mod tests {
 
         // 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);
     }
 
@@ -176,10 +167,8 @@ mod tests {
         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_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 {};
 
@@ -195,7 +184,7 @@ mod tests {
 
         // 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);
     }
 }