#ifndef TESTPATHTEST_H #define TESTPATHTEST_H #include #include #include #include /*! \class TestPathTest * \brief Unit tests for class TestPath. */ class TestPathTest : public CPPUNIT_NS::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 © ); /// Prevents the use of the copy operator. void operator =( const TestPathTest © ); private: CPPUNIT_NS::TestPath *m_path; CPPUNIT_NS::TestCase *m_test1; CPPUNIT_NS::TestCase *m_test2; CPPUNIT_NS::TestCase *m_test3; CPPUNIT_NS::TestCase *m_test4; CPPUNIT_NS::TestSuite *m_suite1; CPPUNIT_NS::TestSuite *m_suite2; CPPUNIT_NS::TestCase *m_testSuite2a; CPPUNIT_NS::TestCase *m_testSuite2b; }; #endif // TESTPATHTEST_H