OptionTest.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "Option.h"
  2. #include <string>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. #include "prefs.h"
  5. namespace aria2 {
  6. class OptionTest:public CppUnit::TestFixture {
  7. CPPUNIT_TEST_SUITE(OptionTest);
  8. CPPUNIT_TEST(testPutAndGet);
  9. CPPUNIT_TEST(testPutAndGetAsInt);
  10. CPPUNIT_TEST(testPutAndGetAsDouble);
  11. CPPUNIT_TEST(testDefined);
  12. CPPUNIT_TEST(testBlank);
  13. CPPUNIT_TEST_SUITE_END();
  14. private:
  15. public:
  16. void setUp() {
  17. }
  18. void testPutAndGet();
  19. void testPutAndGetAsInt();
  20. void testPutAndGetAsDouble();
  21. void testDefined();
  22. void testBlank();
  23. };
  24. CPPUNIT_TEST_SUITE_REGISTRATION( OptionTest );
  25. void OptionTest::testPutAndGet() {
  26. Option op;
  27. op.put(PREF_TIMEOUT, "value");
  28. CPPUNIT_ASSERT(op.defined(PREF_TIMEOUT));
  29. CPPUNIT_ASSERT_EQUAL(std::string("value"), op.get(PREF_TIMEOUT));
  30. }
  31. void OptionTest::testPutAndGetAsInt() {
  32. Option op;
  33. op.put(PREF_TIMEOUT, "1000");
  34. CPPUNIT_ASSERT(op.defined(PREF_TIMEOUT));
  35. CPPUNIT_ASSERT_EQUAL((int32_t)1000, op.getAsInt(PREF_TIMEOUT));
  36. }
  37. void OptionTest::testPutAndGetAsDouble() {
  38. Option op;
  39. op.put(PREF_TIMEOUT, "10.0");
  40. CPPUNIT_ASSERT_EQUAL(10.0, op.getAsDouble(PREF_TIMEOUT));
  41. }
  42. void OptionTest::testDefined()
  43. {
  44. Option op;
  45. op.put(PREF_TIMEOUT, "v");
  46. op.put(PREF_DIR, "");
  47. CPPUNIT_ASSERT(op.defined(PREF_TIMEOUT));
  48. CPPUNIT_ASSERT(op.defined(PREF_DIR));
  49. CPPUNIT_ASSERT(!op.defined(PREF_DAEMON));
  50. }
  51. void OptionTest::testBlank()
  52. {
  53. Option op;
  54. op.put(PREF_TIMEOUT, "v");
  55. op.put(PREF_DIR, "");
  56. CPPUNIT_ASSERT(!op.blank(PREF_TIMEOUT));
  57. CPPUNIT_ASSERT(op.blank(PREF_DIR));
  58. CPPUNIT_ASSERT(op.blank(PREF_DAEMON));
  59. }
  60. } // namespace aria2