]>
Commit | Line | Data |
---|---|---|
b17907fa | 1 | use crate::template::Context; |
6352ebb0 | 2 | use crate::utils::recursively_copy; |
d7fef30a | 3 | use std::io::Result; |
b17907fa | 4 | use std::path::Path; |
29982470 | 5 | |
b17907fa | 6 | pub fn generate(source: &Path, _: &Path, target: &Path, _: &Context) -> Result<()> { |
29982470 | 7 | if source.exists() { |
d7fef30a | 8 | return recursively_copy(source, target); |
29982470 RBR |
9 | } |
10 | Ok(()) | |
11 | } | |
795d79af RBR |
12 | |
13 | #[cfg(test)] | |
14 | mod tests { | |
15 | use std::collections::HashMap; | |
16 | use std::fs::create_dir_all; | |
17 | ||
18 | use super::*; | |
19 | ||
20 | use test_utilities::*; | |
21 | ||
22 | #[test] | |
23 | fn test_copies_files() { | |
24 | let test_dir = setup_test_dir(); | |
25 | let static_dir = test_dir.join("static"); | |
26 | let template_dir = test_dir.join("templates"); | |
27 | let output_dir = test_dir.join("output"); | |
28 | ||
29 | create_dir_all(&static_dir).expect("Could not create static directory"); | |
30 | create_dir_all(&output_dir).expect("Could not create output directory"); | |
31 | create_test_file(&static_dir.join("test.jpg"), "Cool hat"); | |
32 | ||
33 | let context = HashMap::new(); | |
34 | ||
35 | generate(&static_dir, &template_dir, &output_dir, &context).expect("Generate failed"); | |
36 | ||
37 | assert_file_contents(&output_dir.join("test.jpg"), "Cool hat"); | |
38 | } | |
39 | ||
40 | #[test] | |
41 | fn test_creates_directories_if_they_do_not_exist() { | |
42 | let test_dir = setup_test_dir(); | |
43 | let static_dir = test_dir.join("static"); | |
44 | let template_dir = test_dir.join("templates"); | |
45 | let output_dir = test_dir.join("output"); | |
46 | ||
47 | create_dir_all(&static_dir).expect("Could not create static directory"); | |
9c537e47 | 48 | create_dir_all(static_dir.join("nested")).expect("Could not create output directory"); |
795d79af RBR |
49 | create_test_file(&static_dir.join("nested/test.mov"), "Cool hats, multiple."); |
50 | ||
51 | let context = HashMap::new(); | |
52 | ||
53 | generate(&static_dir, &template_dir, &output_dir, &context).expect("Generate failed"); | |
54 | ||
55 | assert_file_contents(&output_dir.join("nested/test.mov"), "Cool hats, multiple."); | |
56 | } | |
57 | ||
58 | #[test] | |
59 | fn test_it_does_not_fail_if_source_directory_does_not_exist() { | |
60 | let test_dir = setup_test_dir(); | |
61 | let static_dir = test_dir.join("static"); | |
62 | let template_dir = test_dir.join("templates"); | |
63 | let output_dir = test_dir.join("output"); | |
64 | ||
65 | let context = HashMap::new(); | |
66 | ||
67 | let result = generate(&static_dir, &template_dir, &output_dir, &context); | |
68 | ||
69 | assert!(result.is_ok()); | |
70 | } | |
71 | } |