diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 20 | ||||
| -rw-r--r-- | src/tests.rs | 21 | 
2 files changed, 32 insertions, 9 deletions
| diff --git a/src/main.rs b/src/main.rs index aebabef..4c0cf26 100644 --- a/src/main.rs +++ b/src/main.rs @@ -97,6 +97,26 @@ impl From<io::Error> for AliasSearchError {      }  } +#[cfg(test)] +impl PartialEq<AliasSearchError> for AliasSearchError { +    fn eq(&self, other: &AliasSearchError) -> bool { +        match *self { +            AliasSearchError::NotFound => match *other { +                AliasSearchError::NotFound => true, +                _ => false, +            }, +            AliasSearchError::EmailExists => match *other { +                AliasSearchError::EmailExists => true, +                _ => false, +            }, +            AliasSearchError::Io(_) => match *other { +                AliasSearchError::Io(_) => true, +                _ => false, +            }, +        } +    } +} +  fn find_alias_in_file(alias: &Alias, file: &str) -> Result<Vec<String>, AliasSearchError> {      let mut matches = Vec::new();      let f = try!(File::open(file)); diff --git a/src/tests.rs b/src/tests.rs index ccacd29..a6f2777 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -1,4 +1,4 @@ -use super::{Alias, find_alias_in_file}; +use super::{Alias, AliasSearchError, find_alias_in_file};  #[test]  fn new_alias_with_only_email() { @@ -42,13 +42,16 @@ fn new_alias_with_special_characters() {  #[test] -fn find_alias_in_file_finds_a_match() { -    find_alias_in_file( -        &Alias { -            alias: "farnsworth-hubert".to_owned(), -            name: "Hubert Farnsworth".to_owned(), -            email: "<professor@planetexpress.com>".to_owned() -        }, -        "./testdata/aliases" +fn find_alias_in_file_email_already_exists() { +    assert_eq!( +        Err(AliasSearchError::EmailExists), +        find_alias_in_file( +            &Alias { +                alias: "farnsworth-hubert".to_owned(), +                name: "Hubert Farnsworth".to_owned(), +                email: "<professor@planetexpress.com>".to_owned() +            }, +            "./testdata/aliases" +        )      );  } | 
