// --- includes --- #include "CTUEPTException.h" /** * Constructor. * * @param a_bInputFileNecessary (i) - is the input data file necessary. * @param a_rName (i) - test case name. */ CTUEPTException::CTUEPTException( const bool a_bInputFileNecessary, const QString& a_rName ) : CTLTestCaseUnit( a_bInputFileNecessary ) , m_pTestedClassObject( 0 ) { SetName( a_rName.isNull() ? QString(className() ) : a_rName ); SetAuthor( "" ); } // END CTUEPTException /** * Destructor. * */ CTUEPTException::~CTUEPTException() { } // END ~CTUEPTException /** * Prepares test case for test procedure. */ void CTUEPTException::SetUp() { AssignNewObject( m_pTestedClassObject ); } // END SetUp() void CTUEPTException::AssignNewObject( EPTException*& a_rPointer ) { if ( a_rPointer ) { delete a_rPointer; a_rPointer = 0; } a_rPointer = new EPTException("Exception, created for UnitTest 'CTUEPTException'."); if ( !a_rPointer ) { qDebug( "CTUEPTException::AssignNewObject() fails" ); } CHECK( a_rPointer ); } /** * Beginning of test procedure. */ void CTUEPTException::Start() { if ( CHECK( m_pTestedClassObject ) ) { //StartTestInit( m_pTestedClassObject ); //StartTestCopyConstructor( m_pTestedClassObject ); //StartTestOperatorAssignment( m_pTestedClassObject ); //Change( m_pTestedClassObject ); StartTestGetMessage(); StartTestCreateStackTrace_String(); StartTestCreateStackTrace_Pointer(); StartTestGetStackTrace(); TODO( "Method ChangeEverything is not implemented" ); TODO( "Method ChangeCollections is not implemented" ); TODO( "Method AreEqual is not implemented" ); } } // END Start() /** * Tests the GetMessage() method */ void CTUEPTException::StartTestGetMessage() { { // NULL String QString strInput1; EPTException oTestException(strInput1); QString strOutput1 = oTestException.GetMessage(); TEST( strInput1 == strOutput1 ); } { // Empty String QString strInput2(""); EPTException oTestException(strInput2); QString strOutput2 = oTestException.GetMessage(); TEST( strInput2 == strOutput2 ); } { // Short String QString strInput3("Error"); EPTException oTestException(strInput3); QString strOutput3 = oTestException.GetMessage(); TEST( strInput3 == strOutput3 ); } { // Normal String QString strInput4("This is a normal Exception Text"); EPTException oTestException(strInput4); QString strOutput4 = oTestException.GetMessage(); TEST( strInput4 == strOutput4 ); } { // Long String QString strInput5("This is a exception text of people, who don't get the point and" "write and write and write and write and write and write and..."); EPTException oTestException(strInput5); QString strOutput5 = oTestException.GetMessage(); TEST( strInput5 == strOutput5 ); } { // Special-Char String QString strInput6("!@#$%^&*()_+=-\n\t\r\n[]{}\\:\">?<\""); EPTException oTestException(strInput6); QString strOutput6 = oTestException.GetMessage(); TEST( strInput6 == strOutput6 ); } } // END StartTestGetMessage() /** * Tests the CreateStackTrace() method, with string output */ void CTUEPTException::StartTestCreateStackTrace_String() { { COMMENT( "Test pop = 0" ); QStringList aStackTrace = EPTException::CreateStackTrace( 0, false ); printf("\n\n\n\nTest pop = 0\n"); foreach( QString string, aStackTrace ) { printf("%s\n", string.latin1()); } TEST( aStackTrace.length() > 10 ); TEST( aStackTrace.at(0).contains("EPTException") ); TEST( aStackTrace.at(0).contains("CreateStackTrace") ); TEST( aStackTrace.at(0).contains("test.exe") ); TEST( aStackTrace.at(1).contains("CTUEPTException") ); TEST( aStackTrace.at(1).contains("StartTestCreateStackTrace") ); TEST( aStackTrace.at(1).contains("test.exe") ); TEST( aStackTrace.at(2).contains("CTUEPTException") ); TEST( aStackTrace.at(2).contains("Start") ); TEST( aStackTrace.at(2).contains("test.exe") ); TEST( aStackTrace.at(0).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(1).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(2).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(3).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(4).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(5).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); } { COMMENT( "Test pop = 1" ); QStringList aStackTrace = EPTException::CreateStackTrace( 1, false ); TEST( aStackTrace.length() > 10 ); // Removed: EPTException, CreateStackTrace, test.exe TEST( aStackTrace.at(0).contains("CTUEPTException") ); TEST( aStackTrace.at(0).contains("StartTestCreateStackTrace") ); TEST( aStackTrace.at(0).contains("test.exe") ); TEST( aStackTrace.at(1).contains("CTUEPTException") ); TEST( aStackTrace.at(1).contains("Start") ); TEST( aStackTrace.at(1).contains("test.exe") ); TEST( aStackTrace.at(0).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(1).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(2).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(3).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(4).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(5).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); } { COMMENT( "Test pop = 2" ); QStringList aStackTrace = EPTException::CreateStackTrace( 2, false ); TEST( aStackTrace.length() > 10 ); // Removed: EPTException, CreateStackTrace, test.exe // Removed: CTUEPTException, StartTestCreateStackTrace, test.exe TEST( aStackTrace.at(0).contains("CTUEPTException") ); TEST( aStackTrace.at(0).contains("Start") ); TEST( aStackTrace.at(0).contains("test.exe") ); TEST( aStackTrace.at(0).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(1).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(2).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(3).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(4).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(5).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); } { COMMENT( "Test pop = 99999" ); QStringList aStackTrace = EPTException::CreateStackTrace( 99999, false ); TEST( aStackTrace.length() == 0 ); } { COMMENT( "Test pop = -1" ); QStringList aStackTrace = EPTException::CreateStackTrace( -1, false ); TEST( aStackTrace.length() == 0 ); } } // END StartTestCreateStackTrace_String() /** * Tests the CreateStackTrace() method, with string output */ void CTUEPTException::StartTestCreateStackTrace_String() { { COMMENT( "Test pop = 0" ); QStringList aStackTrace = EPTException::CreateStackTrace( 0, false ); printf("\n\n\n\nTest pop = 0\n"); foreach( QString string, aStackTrace ) { printf("%s\n", string.latin1()); } TEST( aStackTrace.length() > 10 ); TEST( aStackTrace.at(0).contains("EPTException") ); TEST( aStackTrace.at(0).contains("CreateStackTrace") ); TEST( aStackTrace.at(0).contains("test.exe") ); TEST( aStackTrace.at(1).contains("CTUEPTException") ); TEST( aStackTrace.at(1).contains("StartTestCreateStackTrace") ); TEST( aStackTrace.at(1).contains("test.exe") ); TEST( aStackTrace.at(2).contains("CTUEPTException") ); TEST( aStackTrace.at(2).contains("Start") ); TEST( aStackTrace.at(2).contains("test.exe") ); TEST( aStackTrace.at(0).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(1).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(2).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(3).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(4).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(5).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); } { COMMENT( "Test pop = 1" ); QStringList aStackTrace = EPTException::CreateStackTrace( 1, false ); TEST( aStackTrace.length() > 10 ); // Removed: EPTException, CreateStackTrace, test.exe TEST( aStackTrace.at(0).contains("CTUEPTException") ); TEST( aStackTrace.at(0).contains("StartTestCreateStackTrace") ); TEST( aStackTrace.at(0).contains("test.exe") ); TEST( aStackTrace.at(1).contains("CTUEPTException") ); TEST( aStackTrace.at(1).contains("Start") ); TEST( aStackTrace.at(1).contains("test.exe") ); TEST( aStackTrace.at(0).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(1).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(2).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(3).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(4).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(5).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); } { COMMENT( "Test pop = 2" ); QStringList aStackTrace = EPTException::CreateStackTrace( 2, false ); TEST( aStackTrace.length() > 10 ); // Removed: EPTException, CreateStackTrace, test.exe // Removed: CTUEPTException, StartTestCreateStackTrace, test.exe TEST( aStackTrace.at(0).contains("CTUEPTException") ); TEST( aStackTrace.at(0).contains("Start") ); TEST( aStackTrace.at(0).contains("test.exe") ); TEST( aStackTrace.at(0).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(1).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(2).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(3).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(4).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); TEST( aStackTrace.at(5).contains( QRegExp("^/.+\\(_.+\\) \\[0x[0-9a-f]+\\]$") )); } { COMMENT( "Test pop = 99999" ); QStringList aStackTrace = EPTException::CreateStackTrace( 99999, false ); TEST( aStackTrace.length() == 0 ); } { COMMENT( "Test pop = -1" ); QStringList aStackTrace = EPTException::CreateStackTrace( -1, false ); TEST( aStackTrace.length() == 0 ); } } // END StartTestCreateStackTrace_String() /** * Tests the GetStackTrace() method */ void CTUEPTException::StartTestGetStackTrace() { } // END StartTestGetStackTrace /** * Finishes test procedure. */ void CTUEPTException::Finish() { } // END Finish() /** * Performs all needed deletes, disconnects etc. after test procedure. */ void CTUEPTException::CleanUp() { if ( m_pTestedClassObject ) { delete m_pTestedClassObject; m_pTestedClassObject = 0; } } // END CleanUp() /** * It changes all attributes. * * @param a_rObject (i) - object which is being changed. */ void CTUEPTException::ChangeEverything( EPTException& /* a_rObject */ ) { TODO( "ChangeEverything method is not implemented" ); } // END ChangeEverything(...) /** * All the collections of the main object are changed here. * It changes elements and number of elements of every collection. * * @param a_rObject (i) - object which collections are changed. */ void CTUEPTException::ChangeCollections( EPTException& /* a_rObject */ ) { TODO( "Method ChangeCollections is not implemented" ); } // END ChangeCollections(...) /** * This method returns true if object are equal. * * @param a_rOriginal (i) - object to compare * @param a_rCopy (i) - object to compare * * @return True if equal, false if there are differences. */ bool CTUEPTException::AreEqual ( EPTException& /* a_rOriginal */ , EPTException& /* a_rCopy */ , const bool /* a_bTestingSerialize */ ) { TODO( "Method AreEqual is not implemented" ); return false; } // END AreEqual(...)