00001 #ifndef TESTBENCH_H 00002 #define TESTBENCH_H 00003 00004 #include <QtTest/QtTest> 00005 #include <QtPlugin> 00006 00007 #include <memory> 00008 00017 class TestInterface : public QObject 00018 { 00019 public: 00020 00021 virtual ~TestInterface() {} 00022 00027 virtual QString name() const = 0; 00028 }; 00029 00030 Q_DECLARE_INTERFACE(TestInterface, "net.sourceforge.moptaskmanager.test/1.0"); 00031 00042 #define TEST_COPY(C) TEST_COPY_INIT(C, (void)) 00043 00055 #define TEST_COPY_INIT(C, init) \ 00056 do \ 00057 { \ 00058 std::auto_ptr<C> orig(new C()); \ 00059 init(orig.get()); \ 00060 C copy_ctor(*orig); \ 00061 C copy_assign; \ 00062 copy_assign = *orig; \ 00063 QVERIFY(*orig == copy_ctor); \ 00064 QVERIFY(*orig == copy_assign); \ 00065 delete orig.release(); \ 00066 QVERIFY(copy_assign == copy_ctor); \ 00067 } \ 00068 while (false) 00069 00075 #define EXPECT_EXCEPTION(expression) \ 00076 do \ 00077 { \ 00078 bool gotIt = false; \ 00079 try {expression;} \ 00080 catch(...) {gotIt = true;} \ 00081 if (!gotIt) \ 00082 QFAIL("Expected an exception while executing "#expression); \ 00083 } \ 00084 while (false) 00085 00086 #endif 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106