void NotificationQueueTest::testQueueDequeueUrgent() { NotificationQueue queue; queue.enqueueNotification(new QTestNotification("first")); queue.enqueueNotification(new QTestNotification("second")); queue.enqueueUrgentNotification(new QTestNotification("third")); assert (!queue.empty()); assert (queue.size() == 3); QTestNotification* pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); assertNotNullPtr(pTNf); assert (pTNf->data() == "third"); pTNf->release(); assert (!queue.empty()); assert (queue.size() == 2); pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); assert (pTNf->data() == "first"); pTNf->release(); assert (!queue.empty()); assert (queue.size() == 1); pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); assertNotNullPtr(pTNf); assert (pTNf->data() == "second"); pTNf->release(); assert (queue.empty()); assert (queue.size() == 0); Notification* pNf = queue.dequeueNotification(); assertNullPtr(pNf); }
void TimedNotificationQueueTest::testWaitDequeueTimeout() { TimedNotificationQueue queue; Poco::Timestamp ts1; ts1 += 200000; Poco::Timestamp ts2; ts2 += 400000; Poco::Timestamp ts3; ts3 += 600000; Poco::Timestamp ts4; ts4 += 800000; queue.enqueueNotification(new QTestNotification("first"), ts1); queue.enqueueNotification(new QTestNotification("fourth"), ts4); queue.enqueueNotification(new QTestNotification("third"), ts3); queue.enqueueNotification(new QTestNotification("second"), ts2); assert (!queue.empty()); assert (queue.size() == 4); QTestNotification* pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(10)); assertNullPtr(pTNf); pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(20)); assertNullPtr(pTNf); pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(200)); assertNotNullPtr(pTNf); assert (pTNf->data() == "first"); pTNf->release(); assert (ts1.elapsed() >= 0); assert (!queue.empty()); assert (queue.size() == 3); pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(220)); assertNotNullPtr(pTNf); assert (pTNf->data() == "second"); pTNf->release(); assert (ts2.elapsed() >= 0); assert (!queue.empty()); assert (queue.size() == 2); pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(220)); assertNotNullPtr(pTNf); assert (pTNf->data() == "third"); pTNf->release(); assert (ts3.elapsed() >= 0); assert (!queue.empty()); assert (queue.size() == 1); pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(220)); assertNotNullPtr(pTNf); assert (pTNf->data() == "fourth"); pTNf->release(); assert (ts1.elapsed() >= 0); assert (queue.empty()); assert (queue.size() == 0); }
void PriorityNotificationQueueTest::testQueueDequeue() { PriorityNotificationQueue queue; assert (queue.empty()); assert (queue.size() == 0); Notification* pNf = queue.dequeueNotification(); assertNullPtr(pNf); queue.enqueueNotification(new Notification, 1); assert (!queue.empty()); assert (queue.size() == 1); pNf = queue.dequeueNotification(); assertNotNullPtr(pNf); assert (queue.empty()); assert (queue.size() == 0); pNf->release(); queue.enqueueNotification(new QTestNotification("first"), 1); queue.enqueueNotification(new QTestNotification("fourth"), 4); queue.enqueueNotification(new QTestNotification("third"), 3); queue.enqueueNotification(new QTestNotification("second"), 2); assert (!queue.empty()); assert (queue.size() == 4); QTestNotification* pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); assertNotNullPtr(pTNf); assert (pTNf->data() == "first"); pTNf->release(); assert (!queue.empty()); assert (queue.size() == 3); pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); assertNotNullPtr(pTNf); assert (pTNf->data() == "second"); pTNf->release(); assert (!queue.empty()); assert (queue.size() == 2); pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); assertNotNullPtr(pTNf); assert (pTNf->data() == "third"); pTNf->release(); assert (!queue.empty()); assert (queue.size() == 1); pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); assertNotNullPtr(pTNf); assert (pTNf->data() == "fourth"); pTNf->release(); assert (queue.empty()); assert (queue.size() == 0); pNf = queue.dequeueNotification(); assertNullPtr(pNf); }
void NotificationQueueTest::testWaitDequeue() { NotificationQueue queue; queue.enqueueNotification(new QTestNotification("third")); queue.enqueueNotification(new QTestNotification("fourth")); assert (!queue.empty()); assert (queue.size() == 2); QTestNotification* pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(10)); assertNotNullPtr(pTNf); assert (pTNf->data() == "third"); pTNf->release(); assert (!queue.empty()); assert (queue.size() == 1); pTNf = dynamic_cast<QTestNotification*>(queue.waitDequeueNotification(10)); assertNotNullPtr(pTNf); assert (pTNf->data() == "fourth"); pTNf->release(); assert (queue.empty()); assert (queue.size() == 0); Notification* pNf = queue.waitDequeueNotification(10); assertNullPtr(pNf); }
void TimedNotificationQueueTest::testDequeue() { TimedNotificationQueue queue; assert (queue.empty()); assert (queue.size() == 0); Notification* pNf = queue.dequeueNotification(); assertNullPtr(pNf); queue.enqueueNotification(new Notification, Timestamp()); assert (!queue.empty()); assert (queue.size() == 1); pNf = queue.dequeueNotification(); assertNotNullPtr(pNf); assert (queue.empty()); assert (queue.size() == 0); pNf->release(); Poco::Timestamp ts1; ts1 += 100000; Poco::Timestamp ts2; ts2 += 200000; Poco::Timestamp ts3; ts3 += 300000; Poco::Timestamp ts4; ts4 += 400000; queue.enqueueNotification(new QTestNotification("first"), ts1); queue.enqueueNotification(new QTestNotification("fourth"), ts4); queue.enqueueNotification(new QTestNotification("third"), ts3); queue.enqueueNotification(new QTestNotification("second"), ts2); assert (!queue.empty()); assert (queue.size() == 4); QTestNotification* pTNf = 0; while (!pTNf) { pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); } assertNotNullPtr(pTNf); assert (pTNf->data() == "first"); pTNf->release(); assert (ts1.elapsed() >= 0); assert (!queue.empty()); assert (queue.size() == 3); pTNf = 0; while (!pTNf) { pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); } assertNotNullPtr(pTNf); assert (pTNf->data() == "second"); pTNf->release(); assert (ts2.elapsed() >= 0); assert (!queue.empty()); assert (queue.size() == 2); pTNf = 0; while (!pTNf) { pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); } assertNotNullPtr(pTNf); assert (pTNf->data() == "third"); pTNf->release(); assert (ts3.elapsed() >= 0); assert (!queue.empty()); assert (queue.size() == 1); pTNf = 0; while (!pTNf) { pTNf = dynamic_cast<QTestNotification*>(queue.dequeueNotification()); } assertNotNullPtr(pTNf); assert (pTNf->data() == "fourth"); pTNf->release(); assert (ts4.elapsed() >= 0); assert (queue.empty()); assert (queue.size() == 0); pNf = queue.dequeueNotification(); assertNullPtr(pNf); }