]>
Commit | Line | Data |
---|---|---|
1 | use crate::template::Context; | |
2 | use crate::utils::recursively_copy; | |
3 | use std::io::Result; | |
4 | use std::path::Path; | |
5 | ||
6 | pub fn generate(source: &Path, _: &Path, target: &Path, _: &Context) -> Result<()> { | |
7 | if source.exists() { | |
8 | return recursively_copy(source, target); | |
9 | } | |
10 | Ok(()) | |
11 | } | |
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"); | |
48 | create_dir_all(static_dir.join("nested")).expect("Could not create output directory"); | |
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 | } |