diff options
| author | Teddy Wing | 2016-04-21 14:59:17 -0400 |
|---|---|---|
| committer | Teddy Wing | 2016-04-21 14:59:17 -0400 |
| commit | 763d47befd80547f12525c01cc5a103d1ef5f285 (patch) | |
| tree | 7dace6cac7c907e43d48823e1a771e6be4556cee /src/tests.rs | |
| parent | 9b56cecda8fb33cb006d40d2e367bca2796c7d23 (diff) | |
| download | mutt-alias-auto-add-763d47befd80547f12525c01cc5a103d1ef5f285.tar.bz2 | |
Add test find_alias_in_file_email_already_exists
When the email of the alias we're looking is already in the file, expect
an `AliasSearchError::EmailExists` error.
Oh man, this was a tough one. After much searching, finally figured out
how to implement the `PartialEq` trait for my error type so that we
could actually test it.
Many thanks to @peterbudai for an example in the 'redux' project of how
to do this
(https://github.com/peterbudai/redux/blob/ef5d47a0a64cef9fa9e1e9c6f21badc46fa283fc/src/lib.rs):
#[cfg(test)]
impl PartialEq<Error> for Error {
fn eq(&self, other: &Error) -> bool {
match *self {
Error::Eof => match *other { Error::Eof => true, _ => false },
Error::InvalidInput => match *other { Error::InvalidInput => true, _ => false },
Error::IoError(_) => match *other { Error::IoError(_) => true, _ => false },
}
}
}
With that example, I was able to correctly build an equality function to
get past my compiler errors which complained that
an implementation of `std::cmp::PartialEq` might be missing for `std::io::error::Error`
when I tried to `#[derive(PartialEq)]` on my `AliasSearchError` type.
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 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" + ) ); } |
