Bencode2Test.cc 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "bencode2.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "RecoverableException.h"
  4. namespace aria2 {
  5. class Bencode2Test : public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(Bencode2Test);
  7. CPPUNIT_TEST(testEncode);
  8. CPPUNIT_TEST_SUITE_END();
  9. private:
  10. public:
  11. void testEncode();
  12. };
  13. CPPUNIT_TEST_SUITE_REGISTRATION(Bencode2Test);
  14. void Bencode2Test::testEncode()
  15. {
  16. {
  17. Dict dict;
  18. dict.put("name", String::g("aria2"));
  19. dict.put("loc", Integer::g(80000));
  20. auto files = List::g();
  21. files->append(String::g("aria2c"));
  22. dict.put("files", std::move(files));
  23. auto attrs = Dict::g();
  24. attrs->put("license", String::g("GPL"));
  25. dict.put("attrs", std::move(attrs));
  26. CPPUNIT_ASSERT_EQUAL(std::string("d"
  27. "5:attrsd7:license3:GPLe"
  28. "5:filesl6:aria2ce"
  29. "3:loci80000e"
  30. "4:name5:aria2"
  31. "e"),
  32. bencode2::encode(&dict));
  33. }
  34. }
  35. } // namespace aria2