From: <bl...@us...> - 2003-03-15 21:37:28
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv9293/src/rfta Modified Files: CodeRewriter.cpp CodeWriterTest.cpp CodeWriterTest.h Log Message: * added support for inserting switch statement. Index: CodeRewriter.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** CodeRewriter.cpp 15 Mar 2003 21:29:43 -0000 1.10 --- CodeRewriter.cpp 15 Mar 2003 21:37:25 -0000 1.11 *************** *** 283,286 **** --- 283,290 ---- CodeRewriter::visit( SwitchStatement &statement ) { + insertText( "\n" + indentManager_.getIndentSpacer() + "switch ( " ); + statement.getCondition()->accept( *this ); + insertText( " )" ); + statement.getStatements()->accept( *this ); } Index: CodeWriterTest.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** CodeWriterTest.cpp 15 Mar 2003 21:29:43 -0000 1.12 --- CodeWriterTest.cpp 15 Mar 2003 21:37:25 -0000 1.13 *************** *** 380,382 **** --- 380,414 ---- + void + CodeWriterTest::testInsertSwitchStatement() + { + source_ = "{\n" + "}"; + + generateCompound(); + + RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() ); + + CodeModel::StatementPtr defaultStatement( new CodeModel::DefaultStatement() ); + CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() ); + CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() ); + compoundStatement->appendStatement( defaultStatement ); + compoundStatement->appendStatement( nullStatement ); + CodeModel::StatementPtr switchStatement( + new CodeModel::SwitchStatement( makeExpression("x" ), compoundStatement ) ); + compound_->appendStatement( switchStatement ); + + rewriteSource(); + + std::string expectedSource = "{\n" + " switch ( x )\n" + " {\n" + " default:\n" + " ;\n" /// @todo need to improve indentation + " }\n" + "}"; + RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() ); + } + + } // namespace Refactoring Index: CodeWriterTest.h =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** CodeWriterTest.h 15 Mar 2003 21:29:43 -0000 1.9 --- CodeWriterTest.h 15 Mar 2003 21:37:25 -0000 1.10 *************** *** 33,36 **** --- 33,37 ---- CPPUNIT_TEST( testInsertCaseStatement ); CPPUNIT_TEST( testInsertDoStatement ); + CPPUNIT_TEST( testInsertSwitchStatement ); CPPUNIT_TEST_SUITE_END(); *************** *** 58,61 **** --- 59,63 ---- void testInsertCaseStatement(); void testInsertDoStatement(); + void testInsertSwitchStatement(); private: |