diff options
Diffstat (limited to 'src/tests.rs')
| -rw-r--r-- | src/tests.rs | 21 | 
1 files changed, 12 insertions, 9 deletions
| diff --git a/src/tests.rs b/src/tests.rs index e4ec254..c897a32 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -122,18 +122,13 @@ fn update_alias_id_increments_alias() {  } -fn alias_write_to_file_helper(alias: &mut Alias) -> String { +fn alias_write_to_file_helper<F>(alias: &mut Alias, f: F) -> String +    where F: Fn(&Alias, &str) {      // Create a new test file      let test_file = "./testdata/write_to_file";      fs::copy("./testdata/aliases", test_file).expect("Alias file copy failed"); -    // Write a duplicate alias so that `write_to_file` is able to append a -    // new one -    let mut f = OpenOptions::new().append(true).open(test_file) -        .expect("Failed to open test file for appending"); -    writeln!(f, "{}", Alias { email: "derpy@home.pv".to_owned(), .. alias.clone() } -            .to_string()) -        .expect("Failed to append matching alias"); +    f(alias, test_file);      // Write our new alias to the file      alias.write_to_file(test_file).expect("`write_to_file` failed"); @@ -151,7 +146,15 @@ fn alias_write_to_file_helper(alias: &mut Alias) -> String {  #[test]  fn alias_write_to_file_must_write_given_alias_to_file() {      let mut alias = update_alias_id_sample_alias(); -    let alias_line = alias_write_to_file_helper(&mut alias); +    let alias_line = alias_write_to_file_helper(&mut alias, |alias: &Alias, filename: &str| { +        // Write a duplicate alias so that `write_to_file` is able to append a +        // new one +        let mut f = OpenOptions::new().append(true).open(filename) +            .expect("Failed to open test file for appending"); +        writeln!(f, "{}", Alias { email: "derpy@home.pv".to_owned(), .. alias.clone() } +                .to_string()) +            .expect("Failed to append matching alias"); +    });      assert_eq!(alias.to_string(), alias_line);  } | 
