summaryrefslogtreecommitdiff
path: root/examples/cppunittest/TestPathTest.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/cppunittest/TestPathTest.h')
-rw-r--r--examples/cppunittest/TestPathTest.h142
1 files changed, 142 insertions, 0 deletions
diff --git a/examples/cppunittest/TestPathTest.h b/examples/cppunittest/TestPathTest.h
new file mode 100644
index 0000000..6ed4a98
--- /dev/null
+++ b/examples/cppunittest/TestPathTest.h
@@ -0,0 +1,142 @@
+#ifndef TESTPATHTEST_H
+#define TESTPATHTEST_H
+
+#include <cppunit/extensions/HelperMacros.h>
+#include <cppunit/TestPath.h>
+#include <cppunit/TestCase.h>
+#include <stdexcept>
+
+
+/*! \class TestPathTest
+ * \brief Unit tests for class TestPath.
+ */
+class TestPathTest : public CppUnit::TestFixture
+{
+ CPPUNIT_TEST_SUITE( TestPathTest );
+ CPPUNIT_TEST( testDefaultConstructor );
+ CPPUNIT_TEST( testAddTest );
+ CPPUNIT_TEST_EXCEPTION( testGetTestAtThrow1, std::out_of_range );
+ CPPUNIT_TEST_EXCEPTION( testGetTestAtThrow2, std::out_of_range );
+ CPPUNIT_TEST( testGetChildTest );
+ CPPUNIT_TEST( testGetChildTestManyTests );
+ CPPUNIT_TEST_EXCEPTION( testGetChildTestThrowIfNotValid, std::out_of_range );
+ CPPUNIT_TEST( testAddPath );
+ CPPUNIT_TEST( testAddInvalidPath );
+ CPPUNIT_TEST( testRemoveTests );
+ CPPUNIT_TEST( testRemoveTest );
+ CPPUNIT_TEST_EXCEPTION( testRemoveTestThrow1, std::out_of_range );
+ CPPUNIT_TEST_EXCEPTION( testRemoveTestThrow2, std::out_of_range );
+ CPPUNIT_TEST( testUp );
+ CPPUNIT_TEST_EXCEPTION( testUpThrow, std::out_of_range );
+ CPPUNIT_TEST( testInsert );
+ CPPUNIT_TEST( testInsertAtEnd );
+ CPPUNIT_TEST_EXCEPTION( testInsertThrow1, std::out_of_range );
+ CPPUNIT_TEST_EXCEPTION( testInsertThrow2, std::out_of_range );
+ CPPUNIT_TEST( testInsertPath );
+ CPPUNIT_TEST_EXCEPTION( testInsertPathThrow, std::out_of_range );
+ CPPUNIT_TEST( testInsertPathDontThrowIfInvalid );
+ CPPUNIT_TEST( testRootConstructor );
+ CPPUNIT_TEST( testPathSliceConstructorCopyUntilEnd );
+ CPPUNIT_TEST( testPathSliceConstructorCopySpecifiedCount );
+ CPPUNIT_TEST( testPathSliceConstructorCopyNone );
+ CPPUNIT_TEST( testPathSliceConstructorNegativeIndex );
+ CPPUNIT_TEST( testPathSliceConstructorAfterEndIndex );
+ CPPUNIT_TEST( testPathSliceConstructorNegativeIndexUntilEnd );
+ CPPUNIT_TEST( testPathSliceConstructorNegativeIndexNone );
+ CPPUNIT_TEST( testToStringNoTest );
+ CPPUNIT_TEST( testToStringOneTest );
+ CPPUNIT_TEST( testToStringHierarchy );
+ CPPUNIT_TEST( testPathStringConstructorRoot );
+ CPPUNIT_TEST( testPathStringConstructorEmptyIsRoot );
+ CPPUNIT_TEST( testPathStringConstructorHierarchy );
+ CPPUNIT_TEST_EXCEPTION( testPathStringConstructorBadRootThrow, std::invalid_argument );
+ CPPUNIT_TEST( testPathStringConstructorRelativeRoot );
+ CPPUNIT_TEST( testPathStringConstructorRelativeRoot2 );
+ CPPUNIT_TEST_EXCEPTION( testPathStringConstructorThrow1, std::invalid_argument );
+ CPPUNIT_TEST( testPathStringConstructorRelativeHierarchy );
+ CPPUNIT_TEST_EXCEPTION( testPathStringConstructorBadRelativeHierarchyThrow, std::invalid_argument );
+ CPPUNIT_TEST_SUITE_END();
+
+public:
+ /*! Constructs a TestPathTest object.
+ */
+ TestPathTest();
+
+ /// Destructor.
+ virtual ~TestPathTest();
+
+ void setUp();
+ void tearDown();
+
+ void testDefaultConstructor();
+ void testAddTest();
+ void testGetTestAtThrow1();
+ void testGetTestAtThrow2();
+ void testGetChildTest();
+ void testGetChildTestManyTests();
+ void testGetChildTestThrowIfNotValid();
+
+ void testAddPath();
+ void testAddInvalidPath();
+
+ void testRemoveTests();
+ void testRemoveTest();
+ void testRemoveTestThrow1();
+ void testRemoveTestThrow2();
+ void testUp();
+ void testUpThrow();
+
+ void testInsert();
+ void testInsertAtEnd();
+ void testInsertThrow1();
+ void testInsertThrow2();
+
+ void testInsertPath();
+ void testInsertPathThrow();
+ void testInsertPathDontThrowIfInvalid();
+
+ void testRootConstructor();
+ void testPathSliceConstructorCopyUntilEnd();
+ void testPathSliceConstructorCopySpecifiedCount();
+ void testPathSliceConstructorCopyNone();
+ void testPathSliceConstructorNegativeIndex();
+ void testPathSliceConstructorAfterEndIndex();
+ void testPathSliceConstructorNegativeIndexUntilEnd();
+ void testPathSliceConstructorNegativeIndexNone();
+
+ void testToStringNoTest();
+ void testToStringOneTest();
+ void testToStringHierarchy();
+
+ void testPathStringConstructorRoot();
+ void testPathStringConstructorEmptyIsRoot();
+ void testPathStringConstructorHierarchy();
+ void testPathStringConstructorBadRootThrow();
+ void testPathStringConstructorRelativeRoot();
+ void testPathStringConstructorRelativeRoot2();
+ void testPathStringConstructorThrow1();
+ void testPathStringConstructorRelativeHierarchy();
+ void testPathStringConstructorBadRelativeHierarchyThrow();
+
+private:
+ /// Prevents the use of the copy constructor.
+ TestPathTest( const TestPathTest &copy );
+
+ /// Prevents the use of the copy operator.
+ void operator =( const TestPathTest &copy );
+
+private:
+ CppUnit::TestPath *m_path;
+ CppUnit::TestCase *m_test1;
+ CppUnit::TestCase *m_test2;
+ CppUnit::TestCase *m_test3;
+ CppUnit::TestCase *m_test4;
+ CppUnit::TestSuite *m_suite1;
+ CppUnit::TestSuite *m_suite2;
+ CppUnit::TestCase *m_testSuite2a;
+ CppUnit::TestCase *m_testSuite2b;
+};
+
+
+
+#endif // TESTPATHTEST_H