DataTest.cc 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "Data.h"
  2. #include "A2STR.h"
  3. #include <cstring>
  4. #include <cppunit/extensions/HelperMacros.h>
  5. namespace aria2 {
  6. class DataTest:public CppUnit::TestFixture {
  7. CPPUNIT_TEST_SUITE(DataTest);
  8. CPPUNIT_TEST(testToString);
  9. CPPUNIT_TEST(testGetData);
  10. CPPUNIT_TEST(testToInt);
  11. CPPUNIT_TEST(testToLLInt);
  12. CPPUNIT_TEST_SUITE_END();
  13. private:
  14. public:
  15. void setUp() {
  16. }
  17. void testToString();
  18. void testGetData();
  19. void testToInt();
  20. void testToLLInt();
  21. };
  22. CPPUNIT_TEST_SUITE_REGISTRATION( DataTest );
  23. void DataTest::testToString() {
  24. Data data("aria2", 5);
  25. CPPUNIT_ASSERT_EQUAL(std::string("aria2"), data.toString());
  26. Data null(reinterpret_cast<const char*>(0), 0);
  27. CPPUNIT_ASSERT_EQUAL(A2STR::NIL, null.toString());
  28. Data zeroLengthString(A2STR::NIL);
  29. CPPUNIT_ASSERT_EQUAL(A2STR::NIL, zeroLengthString.toString());
  30. }
  31. void DataTest::testGetData() {
  32. Data data("aria2", 5);
  33. CPPUNIT_ASSERT_EQUAL(0, memcmp("aria2", data.getData(), 5));
  34. CPPUNIT_ASSERT_EQUAL((size_t)5, data.getLen());
  35. Data null(reinterpret_cast<const char*>(0), 0);
  36. CPPUNIT_ASSERT(null.getData() == 0);
  37. CPPUNIT_ASSERT_EQUAL((size_t)0, null.getLen());
  38. Data zeroLengthString(A2STR::NIL);
  39. CPPUNIT_ASSERT(zeroLengthString.getData() == 0);
  40. CPPUNIT_ASSERT_EQUAL((size_t)0, zeroLengthString.getLen());
  41. }
  42. void DataTest::testToInt() {
  43. Data data("1000", 4);
  44. CPPUNIT_ASSERT_EQUAL((int32_t)1000, data.toInt());
  45. Data null(reinterpret_cast<const char*>(0), 0);
  46. CPPUNIT_ASSERT_EQUAL((int32_t)0, null.toInt());
  47. Data alpha("abc", 3);
  48. CPPUNIT_ASSERT_EQUAL((int32_t)0, alpha.toInt());
  49. Data zeroLengthString("");
  50. CPPUNIT_ASSERT_EQUAL(0, (int)zeroLengthString.toLLInt());
  51. }
  52. void DataTest::testToLLInt() {
  53. Data data("1000", 4);
  54. CPPUNIT_ASSERT_EQUAL(1000, (int)data.toLLInt());
  55. Data null(reinterpret_cast<const char*>(0), 0);
  56. CPPUNIT_ASSERT_EQUAL(0, (int)null.toLLInt());
  57. Data alpha("abc", 3);
  58. CPPUNIT_ASSERT_EQUAL(0, (int)alpha.toLLInt());
  59. }
  60. } // namespace aria2