SequentialPickerTest.cc 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include "SequentialPicker.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. #include "a2functional.h"
  4. namespace aria2 {
  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(make_unique<int>(1));
  20. picker.pushEntry(make_unique<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(1, *picker.getPickedEntry());
  26. picker.dropPickedEntry();
  27. CPPUNIT_ASSERT(!picker.isPicked());
  28. CPPUNIT_ASSERT(picker.hasNext());
  29. picker.pickNext();
  30. CPPUNIT_ASSERT_EQUAL(2, *picker.getPickedEntry());
  31. CPPUNIT_ASSERT(!picker.hasNext());
  32. }
  33. } // namespace aria2