DNSCacheTest.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "DNSCache.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. namespace aria2 {
  4. class DNSCacheTest:public CppUnit::TestFixture {
  5. CPPUNIT_TEST_SUITE(DNSCacheTest);
  6. CPPUNIT_TEST(testFind);
  7. CPPUNIT_TEST(testMarkBad);
  8. CPPUNIT_TEST(testPutBadAddr);
  9. CPPUNIT_TEST(testRemove);
  10. CPPUNIT_TEST_SUITE_END();
  11. DNSCache cache_;
  12. public:
  13. void setUp()
  14. {
  15. cache_ = DNSCache();
  16. cache_.put("www", "192.168.0.1", 80);
  17. cache_.put("www", "::1", 80);
  18. cache_.put("ftp", "192.168.0.1", 21);
  19. cache_.put("proxy", "192.168.1.2", 8080);
  20. }
  21. void testFind();
  22. void testMarkBad();
  23. void testPutBadAddr();
  24. void testRemove();
  25. };
  26. CPPUNIT_TEST_SUITE_REGISTRATION(DNSCacheTest);
  27. void DNSCacheTest::testFind()
  28. {
  29. CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), cache_.find("www", 80));
  30. CPPUNIT_ASSERT_EQUAL(std::string("192.168.0.1"), cache_.find("ftp", 21));
  31. CPPUNIT_ASSERT_EQUAL(std::string("192.168.1.2"), cache_.find("proxy", 8080));
  32. CPPUNIT_ASSERT_EQUAL(std::string(""), cache_.find("www", 8080));
  33. CPPUNIT_ASSERT_EQUAL(std::string(""), cache_.find("another", 80));
  34. }
  35. void DNSCacheTest::testMarkBad()
  36. {
  37. cache_.markBad("www", "192.168.0.1", 80);
  38. CPPUNIT_ASSERT_EQUAL(std::string("::1"), cache_.find("www", 80));
  39. }
  40. void DNSCacheTest::testPutBadAddr()
  41. {
  42. cache_.markBad("www", "192.168.0.1", 80);
  43. cache_.put("www", "192.168.0.1", 80);
  44. CPPUNIT_ASSERT_EQUAL(std::string("::1"), cache_.find("www", 80));
  45. }
  46. void DNSCacheTest::testRemove()
  47. {
  48. cache_.remove("www", 80);
  49. CPPUNIT_ASSERT_EQUAL(std::string(""), cache_.find("www", 80));
  50. }
  51. } // namespace aria2