further enhance the testing utilities

This commit is contained in:
favoritas37 2016-08-01 18:33:10 +03:00
parent 59ed259a15
commit 09bce488b4
1 changed files with 23 additions and 3 deletions

View File

@ -8,6 +8,22 @@
namespace zxing{
// TO-DO
// use macros __FILE__, __LINE__
template<typename T, int sz>
static int getArrayLength(T(&)[sz])
{
return sz;
}
#define ASSERT_THROWS(x) \
try { \
#x; \
assertTrue(false); \
} catch(zxing::Exception &/*e*/) { \
}
class TestCase {
private:
@ -34,13 +50,17 @@ private:
protected:
template<class T> void assertEquals(T expected, T actual) {
if(expected != actual) {
QString message = QString("Expected: \n") + itemToString(expected) +
QString(", Got: \n") + itemToString(actual);
//Q_ASSERT_X(false, "assertEquals", message.toStdString().c_str());
QString message = QString("\nExpected: \n[") + itemToString(expected) +
QString("], \nGot: \n[") + itemToString(actual) + QString("]");
throw zxing::Exception(message.toStdString().c_str());
}
}
void assertEquals(const char* expected, const std::string &actual) {
std::string expected_str(expected);
assertEquals(expected_str, actual);
}
void assertSame(qrcode::Mode &expected, qrcode::Mode &actual){
assertEquals(expected, actual);
}