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:
|