Commit c1df754f authored by Francis Dupont's avatar Francis Dupont
Browse files

[master] Merged trac4032 (improve unit tests for exceptions)

parents 45a70053 0d1006f0
// Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
// Copyright (C) 2009, 2015 Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
......@@ -30,6 +30,10 @@ protected:
const char* teststring;
};
void raise_foobar() {
isc_throw(isc::BadValue, "foobar");
}
TEST_F(ExceptionTest, basicMethods) {
try {
isc_throw(Exception, teststring);
......@@ -68,4 +72,22 @@ TEST_F(ExceptionTest, verbose) {
}
}
// A full example of how to check both the exception (e.g., EXPECT_THROW)
// and its associated message (something no gtest macros do).
TEST_F(ExceptionTest, message) {
try {
raise_foobar();
ADD_FAILURE() << "Expected " "raise_foobar()" \
" throws an exception of type " "BadValue" \
".\n Actual: it throws nothing.";
} catch (const isc::BadValue& ex) {
EXPECT_EQ(std::string(ex.getMessage()), "foobar");
} catch (...) {
ADD_FAILURE() << "Expected " "raise_foobar()" \
" throws an exception of type " "BadValue" \
".\n Actual: it throws a different type.";
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment