123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #include "XmlRpcMethod.h"
- #include <cppunit/extensions/HelperMacros.h>
- #include "DownloadEngine.h"
- #include "SelectEventPoll.h"
- #include "Option.h"
- #include "RequestGroupMan.h"
- #include "ServerStatMan.h"
- #include "RequestGroup.h"
- #include "XmlRpcMethodImpl.h"
- #include "BDE.h"
- #include "OptionParser.h"
- #include "OptionHandler.h"
- #include "XmlRpcRequest.h"
- namespace aria2 {
- namespace xmlrpc {
- class XmlRpcMethodTest:public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(XmlRpcMethodTest);
- CPPUNIT_TEST(testAddUri);
- CPPUNIT_TEST(testNoSuchMethod);
- CPPUNIT_TEST_SUITE_END();
- private:
- SharedHandle<DownloadEngine> _e;
- SharedHandle<Option> _option;
- public:
- void setUp()
- {
- _option.reset(new Option());
- _e.reset(new DownloadEngine(SharedHandle<EventPoll>(new SelectEventPoll())));
- _e->option = _option.get();
- _e->_requestGroupMan.reset
- (new RequestGroupMan(std::deque<SharedHandle<RequestGroup> >(),
- 1, _option.get()));
- }
- void tearDown() {}
- void testAddUri();
- void testNoSuchMethod();
- };
- CPPUNIT_TEST_SUITE_REGISTRATION(XmlRpcMethodTest);
- void XmlRpcMethodTest::testAddUri()
- {
- AddUriXmlRpcMethod m;
- XmlRpcRequest req("aria2.addUri", BDE::list());
- req._params << BDE::list();
- req._params[0] << BDE("http://localhost/");
- std::string res = m.execute(req, _e.get());
- const std::deque<SharedHandle<RequestGroup> > rgs =
- _e->_requestGroupMan->getReservedGroups();
- CPPUNIT_ASSERT_EQUAL((size_t)1, rgs.size());
- CPPUNIT_ASSERT_EQUAL(std::string("http://localhost/"),
- rgs.front()->getRemainingUris().front());
- }
- void XmlRpcMethodTest::testNoSuchMethod()
- {
- NoSuchMethodXmlRpcMethod m;
- XmlRpcRequest req("make.hamburger", BDE::none);
- std::string res = m.execute(req, 0);
- CPPUNIT_ASSERT_EQUAL
- (std::string("<?xml version=\"1.0\"?>"
- "<methodResponse>"
- "<fault>"
- "<value>"
- "<struct>"
- "<member>"
- "<name>faultCode</name><value><int>1</int></value>"
- "</member>"
- "<member>"
- "<name>faultString</name>"
- "<value>"
- "<string>No such method: make.hamburger</string>"
- "</value>"
- "</member>"
- "</struct>"
- "</value>"
- "</fault>"
- "</methodResponse>"),
- res);
- }
- } // namespace xmlrpc
- } // namespace aria2
|