SequentialPickerTest.cc 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "SequentialPicker.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. namespace aria2 {
  4. typedef SharedHandle<int> Integer;
  5. class SequentialPickerTest:public CppUnit::TestFixture {
  6. CPPUNIT_TEST_SUITE(SequentialPickerTest);
  7. CPPUNIT_TEST(testPick);
  8. CPPUNIT_TEST_SUITE_END();
  9. public:
  10. void testPick();
  11. };
  12. CPPUNIT_TEST_SUITE_REGISTRATION(SequentialPickerTest);
  13. void SequentialPickerTest::testPick()
  14. {
  15. SequentialPicker<int> picker;
  16. CPPUNIT_ASSERT(!picker.isPicked());
  17. CPPUNIT_ASSERT(!picker.hasNext());
  18. CPPUNIT_ASSERT_EQUAL((size_t)0, picker.countEntryInQueue());
  19. picker.pushEntry(Integer(new int(1)));
  20. picker.pushEntry(Integer(new int(2)));
  21. CPPUNIT_ASSERT(picker.hasNext());
  22. CPPUNIT_ASSERT_EQUAL((size_t)2, picker.countEntryInQueue());
  23. picker.pickNext();
  24. CPPUNIT_ASSERT(picker.isPicked());
  25. CPPUNIT_ASSERT_EQUAL(*Integer(new int(1)), *picker.getPickedEntry());
  26. picker.dropPickedEntry();
  27. CPPUNIT_ASSERT(!picker.isPicked());
  28. CPPUNIT_ASSERT(picker.hasNext());
  29. picker.pickNext();
  30. CPPUNIT_ASSERT_EQUAL(*Integer(new int(2)), *picker.getPickedEntry());
  31. CPPUNIT_ASSERT(!picker.hasNext());
  32. }
  33. } // namespace aria2