From ebdd2c031865250b60b6745dd38736ffec7bfffe Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Mon, 19 Oct 2020 18:25:16 -0400 Subject: [PATCH] Test new error type from caret --- caret/src/lib.rs | 2 +- caret/tests/example.rs | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/caret/src/lib.rs b/caret/src/lib.rs index 57318696c..ed2f203b4 100644 --- a/caret/src/lib.rs +++ b/caret/src/lib.rs @@ -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. diff --git a/caret/tests/example.rs b/caret/tests/example.rs index 4dad87e55..de3b5db4b 100644 --- a/caret/tests/example.rs +++ b/caret/tests/example.rs @@ -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 = 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 = "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" + ); }