aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/alias.rs7
-rw-r--r--src/tests.rs13
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);
+}