diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/alias.rs | 7 | ||||
| -rw-r--r-- | src/tests.rs | 13 |
2 files changed, 17 insertions, 3 deletions
diff --git a/src/alias.rs b/src/alias.rs index 8a66db8..0fd05d2 100644 --- a/src/alias.rs +++ b/src/alias.rs @@ -75,8 +75,11 @@ impl Alias { } pub fn write_to_file<P: AsRef<Path>>(&mut self, file: P) -> Result<(), AliasSearchError> { - let similar_aliases = try!(self.find_in_file(&file)); - self.update_alias_id(similar_aliases); + match self.find_in_file(&file) { + Ok(similar_aliases) => self.update_alias_id(similar_aliases), + Err(AliasSearchError::NotFound) => {}, + Err(e) => return Err(e), + }; let mut f = try!(OpenOptions::new().append(true).open(file)); try!(f.write_all(format!("{}\n", self.to_string()).as_bytes())); diff --git a/src/tests.rs b/src/tests.rs index c897a32..f00d103 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -144,7 +144,7 @@ fn alias_write_to_file_helper<F>(alias: &mut Alias, f: F) -> String } #[test] -fn alias_write_to_file_must_write_given_alias_to_file() { +fn alias_write_to_file_must_write_unique_alias_to_file_if_one_already_exists() { let mut alias = update_alias_id_sample_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 @@ -158,3 +158,14 @@ fn alias_write_to_file_must_write_given_alias_to_file() { assert_eq!(alias.to_string(), alias_line); } + +#[test] +#[allow(unused_variables)] +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, + |alias: &Alias, filename: &str| {}); + + assert_eq!(alias.to_string(), alias_line); +} |
