📄 commandlineparsertest.cpp
字号:
#include "CommandLineParser.h"#include "CommandLineParserTest.h"CPPUNIT_TEST_SUITE_REGISTRATION( CommandLineParserTest );CommandLineParserTest::CommandLineParserTest(){}CommandLineParserTest::~CommandLineParserTest(){}void CommandLineParserTest::setUp(){ _parser = NULL;}void CommandLineParserTest::tearDown(){ delete _parser;}void CommandLineParserTest::parse( const char **lines ){ int count =0; for ( const char **line = lines; *line != NULL; ++line, ++count ); delete _parser; _parser = new CommandLineParser( count, lines ); _parser->parse();}void CommandLineParserTest::testEmptyCommandLine(){ static const char *lines[] = { "", NULL }; parse( lines ); std::string none; CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() ); CPPUNIT_ASSERT( !_parser->noTestProgress() ); CPPUNIT_ASSERT( !_parser->useBriefTestProgress() ); CPPUNIT_ASSERT( !_parser->useCompilerOutputter() ); CPPUNIT_ASSERT( !_parser->useCoutStream() ); CPPUNIT_ASSERT( !_parser->useTextOutputter() ); CPPUNIT_ASSERT( !_parser->useXmlOutputter() );}void CommandLineParserTest::testFlagCompiler(){ static const char *lines[] = { "", "-c", NULL }; parse( lines ); std::string none; CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() ); CPPUNIT_ASSERT( !_parser->noTestProgress() ); CPPUNIT_ASSERT( !_parser->useBriefTestProgress() ); CPPUNIT_ASSERT( _parser->useCompilerOutputter() ); CPPUNIT_ASSERT( !_parser->useCoutStream() ); CPPUNIT_ASSERT( !_parser->useTextOutputter() ); CPPUNIT_ASSERT( !_parser->useXmlOutputter() ); CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );}void CommandLineParserTest::testLongFlagBriefProgress(){ static const char *lines[] = { "", "--brief-progress", NULL }; parse( lines ); std::string none; CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() ); CPPUNIT_ASSERT( !_parser->noTestProgress() ); CPPUNIT_ASSERT( _parser->useBriefTestProgress() ); CPPUNIT_ASSERT( !_parser->useCompilerOutputter() ); CPPUNIT_ASSERT( !_parser->useCoutStream() ); CPPUNIT_ASSERT( !_parser->useTextOutputter() ); CPPUNIT_ASSERT( !_parser->useXmlOutputter() ); CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );}void CommandLineParserTest::testFileName(){ static const char *lines[] = { "", "TestPlugIn.dll", NULL }; parse( lines ); std::string none; CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() ); CPPUNIT_ASSERT( !_parser->noTestProgress() ); CPPUNIT_ASSERT( !_parser->useBriefTestProgress() ); CPPUNIT_ASSERT( !_parser->useCompilerOutputter() ); CPPUNIT_ASSERT( !_parser->useCoutStream() ); CPPUNIT_ASSERT( !_parser->useTextOutputter() ); CPPUNIT_ASSERT( !_parser->useXmlOutputter() ); CPPUNIT_ASSERT_EQUAL( 1, _parser->getPlugInCount() ); CommandLinePlugInInfo info( _parser->getPlugInAt( 0 ) ); CPPUNIT_ASSERT_EQUAL( std::string("TestPlugIn.dll"), info.m_fileName ); CPPUNIT_ASSERT( info.m_parameters.getCommandLine().empty() );}void CommandLineParserTest::testTestPath(){ static const char *lines[] = { "", ":Core", NULL }; parse( lines ); std::string none; CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() ); CPPUNIT_ASSERT_EQUAL( std::string("Core"), _parser->getTestPath() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() ); CPPUNIT_ASSERT( !_parser->noTestProgress() ); CPPUNIT_ASSERT( !_parser->useBriefTestProgress() ); CPPUNIT_ASSERT( !_parser->useCompilerOutputter() ); CPPUNIT_ASSERT( !_parser->useCoutStream() ); CPPUNIT_ASSERT( !_parser->useTextOutputter() ); CPPUNIT_ASSERT( !_parser->useXmlOutputter() ); CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );}void CommandLineParserTest::testParameterWithSpace(){ static const char *lines[] = { "", "--xml", "Test Results.xml", NULL }; parse( lines ); std::string none; CPPUNIT_ASSERT_EQUAL( none, _parser->getEncoding() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getTestPath() ); CPPUNIT_ASSERT_EQUAL( std::string("Test Results.xml"), _parser->getXmlFileName() ); CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlStyleSheet() ); CPPUNIT_ASSERT( !_parser->noTestProgress() ); CPPUNIT_ASSERT( !_parser->useBriefTestProgress() ); CPPUNIT_ASSERT( !_parser->useCompilerOutputter() ); CPPUNIT_ASSERT( !_parser->useCoutStream() ); CPPUNIT_ASSERT( !_parser->useTextOutputter() ); CPPUNIT_ASSERT( _parser->useXmlOutputter() ); CPPUNIT_ASSERT_EQUAL( 0, _parser->getPlugInCount() );}void CommandLineParserTest::testMissingStyleSheetParameterThrow(){ static const char *lines[] = { "", "--xsl", NULL }; parse( lines );}void CommandLineParserTest::testMissingEncodingParameterThrow(){ static const char *lines[] = { "", "--encoding", NULL }; parse( lines );}void CommandLineParserTest::testXmlFileNameIsOptional(){ static const char *lines[] = { "", "--xml", NULL }; parse( lines ); std::string none; CPPUNIT_ASSERT_EQUAL( none, _parser->getXmlFileName() );}void CommandLineParserTest::testPlugInsWithParameters(){ static const char *lines[] = { "", "TestPlugIn1.dll=login = lain", "Clocker.dll", NULL }; parse( lines ); CPPUNIT_ASSERT_EQUAL( 2, _parser->getPlugInCount() ); CommandLinePlugInInfo info1( _parser->getPlugInAt( 0 ) ); CPPUNIT_ASSERT_EQUAL( std::string("TestPlugIn1.dll"), info1.m_fileName ); CPPUNIT_ASSERT_EQUAL( std::string("login = lain"), info1.m_parameters.getCommandLine() ); CommandLinePlugInInfo info2( _parser->getPlugInAt( 1 ) ); CPPUNIT_ASSERT_EQUAL( std::string("Clocker.dll"), info2.m_fileName ); CPPUNIT_ASSERT( info2.m_parameters.getCommandLine().empty() );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -