| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | #include "OptionParser.h"#include "OptionHandlerImpl.h"#include "Exception.h"#include "Util.h"#include "Option.h"#include <iostream>#include <cppunit/extensions/HelperMacros.h>namespace aria2 {class OptionParserTest:public CppUnit::TestFixture {  CPPUNIT_TEST_SUITE(OptionParserTest);  CPPUNIT_TEST(testFindAll);  CPPUNIT_TEST(testFindByNameSubstring);  CPPUNIT_TEST(testFindByTag);  CPPUNIT_TEST(testFindByName);  CPPUNIT_TEST(testParseDefaultValues);  CPPUNIT_TEST_SUITE_END();private:  SharedHandle<OptionParser> _oparser;public:  void setUp()  {    _oparser.reset(new OptionParser());    SharedHandle<OptionHandler> alpha(new DefaultOptionHandler("alpha",							       "",							       "ALPHA"));    alpha->addTag("apple");    _oparser->addOptionHandler(alpha);    SharedHandle<OptionHandler> bravo(new DefaultOptionHandler("bravo"));    bravo->addTag("apple");    bravo->addTag("orange");    bravo->addTag("pineapple");    _oparser->addOptionHandler(bravo);    SharedHandle<OptionHandler> charlie(new DefaultOptionHandler("charlie",								 "",								 "CHARLIE",								 "",								 true));    charlie->addTag("pineapple");    _oparser->addOptionHandler(charlie);    SharedHandle<OptionHandler> delta(new UnitNumberOptionHandler("delta",								  "",								  "1M"));    delta->addTag("pineapple");    _oparser->addOptionHandler(delta);      }  void tearDown() {}  void testFindAll();  void testFindByNameSubstring();  void testFindByTag();  void testFindByName();  void testParseDefaultValues();};CPPUNIT_TEST_SUITE_REGISTRATION(OptionParserTest);void OptionParserTest::testFindAll(){  std::deque<SharedHandle<OptionHandler> > res = _oparser->findAll();  CPPUNIT_ASSERT_EQUAL((size_t)3, res.size());  CPPUNIT_ASSERT_EQUAL(std::string("alpha"), res[0]->getName());  CPPUNIT_ASSERT_EQUAL(std::string("bravo"), res[1]->getName());  CPPUNIT_ASSERT_EQUAL(std::string("delta"), res[2]->getName());}void OptionParserTest::testFindByNameSubstring(){  std::deque<SharedHandle<OptionHandler> > res =    _oparser->findByNameSubstring("l");  CPPUNIT_ASSERT_EQUAL((size_t)2, res.size());  CPPUNIT_ASSERT_EQUAL(std::string("alpha"), res[0]->getName());  CPPUNIT_ASSERT_EQUAL(std::string("delta"), res[1]->getName());}void OptionParserTest::testFindByTag(){  std::deque<SharedHandle<OptionHandler> > res =    _oparser->findByTag("pineapple");  CPPUNIT_ASSERT_EQUAL((size_t)2, res.size());  CPPUNIT_ASSERT_EQUAL(std::string("bravo"), res[0]->getName());  CPPUNIT_ASSERT_EQUAL(std::string("delta"), res[1]->getName());}void OptionParserTest::testFindByName(){  SharedHandle<OptionHandler> bravo = _oparser->findByName("bravo");  CPPUNIT_ASSERT(!bravo.isNull());  CPPUNIT_ASSERT_EQUAL(std::string("bravo"), bravo->getName());  SharedHandle<OptionHandler> charlie = _oparser->findByName("charlie");  CPPUNIT_ASSERT(charlie.isNull());}void OptionParserTest::testParseDefaultValues(){  Option option;  _oparser->parseDefaultValues(&option);  CPPUNIT_ASSERT_EQUAL(std::string("ALPHA"), option.get("alpha"));  CPPUNIT_ASSERT_EQUAL(std::string("1048576"), option.get("delta"));  CPPUNIT_ASSERT_EQUAL(std::string("CHARLIE"), option.get("charlie"));  CPPUNIT_ASSERT(!option.defined("bravo"));}} // namespace aria2
 |