From 2b5435dd4dfec8c2860b6937f8a9ca235f71c041 Mon Sep 17 00:00:00 2001 From: Tibor Benke Date: Mon, 24 Aug 2015 12:53:24 +0200 Subject: [PATCH] testmessage::Error: include Uuid in TestMessageDoesntMatch error variant Signed-off-by: Tibor Benke --- src/matcher/matcher/builder/builder.rs | 9 ++++++--- src/matcher/pattern/testmessage/error.rs | 12 ++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/matcher/matcher/builder/builder.rs b/src/matcher/matcher/builder/builder.rs index 3d469b4..c9986c2 100644 --- a/src/matcher/matcher/builder/builder.rs +++ b/src/matcher/matcher/builder/builder.rs @@ -1,3 +1,5 @@ +use uuid::Uuid; + use matcher::pattern::{Pattern, PatternSource}; use matcher::pattern::testmessage::{self, TestMessage}; use matcher::Matcher; @@ -10,9 +12,10 @@ impl Builder { pub fn drain_into(from: &mut PatternSource, matcher: &mut Matcher) -> Result<(), BuildError>{ for pattern in from { let mut pattern = try!(pattern); + let uuid = pattern.uuid().clone(); let test_messages = Builder::extract_test_messages(&mut pattern); matcher.add_pattern(pattern); - try!(Builder::check_test_messages(matcher, &test_messages)); + try!(Builder::check_test_messages(matcher, &test_messages, &uuid)); } Ok(()) } @@ -26,9 +29,9 @@ impl Builder { messages } - fn check_test_messages(matcher: &Matcher, messages: &[TestMessage]) -> Result<(), BuildError> { + fn check_test_messages(matcher: &Matcher, messages: &[TestMessage], uuid: &Uuid) -> Result<(), BuildError> { for msg in messages { - let result = try!(matcher.parse(msg.message()).ok_or(testmessage::Error::test_message_does_not_match(msg))); + let result = try!(matcher.parse(msg.message()).ok_or(testmessage::Error::test_message_does_not_match(uuid, msg))); try!(msg.test_result(&result)); } Ok(()) diff --git a/src/matcher/pattern/testmessage/error.rs b/src/matcher/pattern/testmessage/error.rs index 5802002..dcf342f 100644 --- a/src/matcher/pattern/testmessage/error.rs +++ b/src/matcher/pattern/testmessage/error.rs @@ -9,7 +9,7 @@ use super::TestMessage; pub enum Error { ValueNotMatch{pattern_uuid: String, key: String, expected_value: String, got_value: String}, KeyNotFound{pattern_uuid: String, key: String}, - TestMessageDoesntMatch{message: String}, + TestMessageDoesntMatch{pattern_uuid: String, message: String}, UnexpectedTags{expected: Option>, got: Option>} } @@ -22,8 +22,8 @@ impl Error { Error::KeyNotFound{pattern_uuid: pattern_uuid.to_hyphenated_string(), key: key.to_string()} } - pub fn test_message_does_not_match(test_msg: &TestMessage) -> Error { - Error::TestMessageDoesntMatch{message: test_msg.message().to_owned()} + pub fn test_message_does_not_match(pattern_uuid: &Uuid, test_msg: &TestMessage) -> Error { + Error::TestMessageDoesntMatch{pattern_uuid: pattern_uuid.to_hyphenated_string(), message: test_msg.message().to_owned()} } pub fn unexpected_tags(expected: Option>, got: Option>) -> Error { @@ -43,8 +43,8 @@ impl fmt::Display for Error { &Error::KeyNotFound{ref pattern_uuid, ref key} => { fmt.write_fmt(format_args!("A parsed key in not found among the expected ones: uuid={} key={}", pattern_uuid, key)) } - &Error::TestMessageDoesntMatch{ref message} => { - fmt.write_fmt(format_args!("A test message cannot be parsed but its pattern is inserted: message='{}'", message)) + &Error::TestMessageDoesntMatch{ref pattern_uuid, ref message} => { + fmt.write_fmt(format_args!("A test message cannot be parsed but its pattern is inserted: uuid={} message='{}'", pattern_uuid, message)) }, &Error::UnexpectedTags{ref expected, ref got} => { fmt.write_fmt(format_args!("Unexpected tags found either in the parse result or among the expected ones: expected: {:?} got={:?}", expected, got)) @@ -62,7 +62,7 @@ impl error::Error for Error { &Error::KeyNotFound{pattern_uuid: _, key: _} => { "A parsed key in not found among the expected ones" }, - &Error::TestMessageDoesntMatch{message: _} => { + &Error::TestMessageDoesntMatch{pattern_uuid: _, message: _} => { "A test message cannot be parsed but its pattern is inserted" }, &Error::UnexpectedTags{expected: _, got: _} => {