Test new error type from caret

This commit is contained in:
Nick Mathewson 2020-10-19 18:25:16 -04:00
parent 1dc3fc214a
commit ebdd2c0318
2 changed files with 14 additions and 2 deletions

View File

@ -219,7 +219,7 @@ macro_rules! caret_enum {
/// An error produced from type derived from type. These errors can
/// only occur when trying to convert to a type made with caret_enum!
#[derive(Debug, Clone)]
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Error {
/// Tried to convert to an enumeration type from an integer that
/// didn't represent a member of that enumeration.

View File

@ -1,4 +1,4 @@
use caret::caret_enum;
use caret::{caret_enum, Error};
use std::convert::TryInto;
caret_enum! {
@ -28,6 +28,12 @@ fn test_int_ops() {
assert_eq!(Demo::from_int(2), None);
let t: Result<Demo, _> = 6.try_into();
assert!(t.is_err());
let err = t.unwrap_err();
assert_eq!(err, Error::InvalidInteger);
assert_eq!(
format!("{}", err),
"Integer was not member of this enumeration"
);
}
#[test]
@ -47,4 +53,10 @@ fn test_str_ops() {
assert_eq!(t, Demo::Dee);
let t: Result<Demo, _> = "Foo".parse();
assert!(t.is_err());
let err = t.unwrap_err();
assert_eq!(err, Error::InvalidString);
assert_eq!(
format!("{}", err),
"String was not member of this enumeration"
);
}