| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 | 
							- #include "Option.h"
 
- #include <string>
 
- #include <cppunit/extensions/HelperMacros.h>
 
- #include "prefs.h"
 
- namespace aria2 {
 
- class OptionTest : public CppUnit::TestFixture {
 
-   CPPUNIT_TEST_SUITE(OptionTest);
 
-   CPPUNIT_TEST(testPutAndGet);
 
-   CPPUNIT_TEST(testPutAndGetAsInt);
 
-   CPPUNIT_TEST(testPutAndGetAsDouble);
 
-   CPPUNIT_TEST(testDefined);
 
-   CPPUNIT_TEST(testBlank);
 
-   CPPUNIT_TEST(testMerge);
 
-   CPPUNIT_TEST(testParent);
 
-   CPPUNIT_TEST(testRemove);
 
-   CPPUNIT_TEST_SUITE_END();
 
- private:
 
- public:
 
-   void setUp() {}
 
-   void testPutAndGet();
 
-   void testPutAndGetAsInt();
 
-   void testPutAndGetAsDouble();
 
-   void testDefined();
 
-   void testBlank();
 
-   void testMerge();
 
-   void testParent();
 
-   void testRemove();
 
- };
 
- CPPUNIT_TEST_SUITE_REGISTRATION(OptionTest);
 
- void OptionTest::testPutAndGet()
 
- {
 
-   Option op;
 
-   op.put(PREF_TIMEOUT, "value");
 
-   CPPUNIT_ASSERT(op.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT_EQUAL(std::string("value"), op.get(PREF_TIMEOUT));
 
- }
 
- void OptionTest::testPutAndGetAsInt()
 
- {
 
-   Option op;
 
-   op.put(PREF_TIMEOUT, "1000");
 
-   CPPUNIT_ASSERT(op.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT_EQUAL((int32_t)1000, op.getAsInt(PREF_TIMEOUT));
 
- }
 
- void OptionTest::testPutAndGetAsDouble()
 
- {
 
-   Option op;
 
-   op.put(PREF_TIMEOUT, "10.0");
 
-   CPPUNIT_ASSERT_EQUAL(10.0, op.getAsDouble(PREF_TIMEOUT));
 
- }
 
- void OptionTest::testDefined()
 
- {
 
-   Option op;
 
-   op.put(PREF_TIMEOUT, "v");
 
-   op.put(PREF_DIR, "");
 
-   CPPUNIT_ASSERT(op.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(op.defined(PREF_DIR));
 
-   CPPUNIT_ASSERT(!op.defined(PREF_DAEMON));
 
- }
 
- void OptionTest::testBlank()
 
- {
 
-   Option op;
 
-   op.put(PREF_TIMEOUT, "v");
 
-   op.put(PREF_DIR, "");
 
-   CPPUNIT_ASSERT(!op.blank(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(op.blank(PREF_DIR));
 
-   CPPUNIT_ASSERT(op.blank(PREF_DAEMON));
 
- }
 
- void OptionTest::testMerge()
 
- {
 
-   Option src;
 
-   src.put(PREF_TIMEOUT, "100");
 
-   src.put(PREF_DAEMON, "true");
 
-   Option dest;
 
-   dest.put(PREF_DAEMON, "false");
 
-   dest.put(PREF_DIR, "foo");
 
-   dest.merge(src);
 
-   CPPUNIT_ASSERT_EQUAL(100, dest.getAsInt(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(dest.getAsBool(PREF_DAEMON));
 
-   CPPUNIT_ASSERT_EQUAL(std::string("foo"), dest.get(PREF_DIR));
 
-   CPPUNIT_ASSERT(!dest.defined(PREF_OUT));
 
- }
 
- void OptionTest::testParent()
 
- {
 
-   Option child;
 
-   std::shared_ptr<Option> parent(new Option());
 
-   parent->put(PREF_TIMEOUT, "100");
 
-   child.put(PREF_DIR, "foo");
 
-   CPPUNIT_ASSERT(!child.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(!child.definedLocal(PREF_TIMEOUT));
 
-   child.setParent(parent);
 
-   CPPUNIT_ASSERT(child.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT_EQUAL(std::string("100"), child.get(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT_EQUAL((int32_t)100, child.getAsInt(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(!child.definedLocal(PREF_TIMEOUT));
 
-   // blank
 
-   CPPUNIT_ASSERT(!child.blank(PREF_DIR));
 
-   child.put(PREF_DIR, "");
 
-   CPPUNIT_ASSERT(child.blank(PREF_DIR));
 
-   CPPUNIT_ASSERT(!child.blank(PREF_TIMEOUT));
 
-   // override
 
-   child.put(PREF_TIMEOUT, "200");
 
-   CPPUNIT_ASSERT(child.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(child.definedLocal(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT_EQUAL(std::string("200"), child.get(PREF_TIMEOUT));
 
-   child.removeLocal(PREF_TIMEOUT);
 
-   CPPUNIT_ASSERT(child.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(!child.definedLocal(PREF_TIMEOUT));
 
- }
 
- void OptionTest::testRemove()
 
- {
 
-   Option child;
 
-   auto parent = std::make_shared<Option>();
 
-   child.setParent(parent);
 
-   child.put(PREF_DIR, "foo");
 
-   child.put(PREF_TIMEOUT, "200");
 
-   parent->put(PREF_DIR, "bar");
 
-   parent->put(PREF_TIMEOUT, "400");
 
-   child.remove(PREF_DIR);
 
-   CPPUNIT_ASSERT(!child.defined(PREF_DIR));
 
-   child.removeLocal(PREF_TIMEOUT);
 
-   CPPUNIT_ASSERT(!child.definedLocal(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(child.defined(PREF_TIMEOUT));
 
-   CPPUNIT_ASSERT(parent->defined(PREF_TIMEOUT));
 
- }
 
- } // namespace aria2
 
 
  |