'Sql', 'name' => 'test-queue', ), ); return $queueSpecs; } /** * Per-provider tests * */ public function setUp() { parent::setUp(); $this->queueService = CRM_Queue_Service::singleton(TRUE); } public function tearDown() { CRM_Utils_Time::resetTime(); $tablesToTruncate = array('civicrm_queue_item'); $this->quickCleanup($tablesToTruncate); } /** * Create a few queue items; alternately enqueue and dequeue various * * @dataProvider getQueueSpecs * @param $queueSpec */ public function testPriorities($queueSpec) { $this->queue = $this->queueService->create($queueSpec); $this->assertTrue($this->queue instanceof CRM_Queue_Queue); $this->queue->createItem(array( 'test-key' => 'a', )); $this->queue->createItem(array( 'test-key' => 'b', )); $this->queue->createItem(array( 'test-key' => 'c', )); $this->assertEquals(3, $this->queue->numberOfItems()); $item = $this->queue->claimItem(); $this->assertEquals('a', $item->data['test-key']); $this->queue->deleteItem($item); $this->assertEquals(2, $this->queue->numberOfItems()); $item = $this->queue->claimItem(); $this->assertEquals('b', $item->data['test-key']); $this->queue->deleteItem($item); $this->queue->createItem( array( 'test-key' => 'start', ), array( 'weight' => -1, ) ); $this->queue->createItem( array( 'test-key' => 'end', ), array( 'weight' => 1, ) ); $this->queue->createItem(array( 'test-key' => 'd', )); $this->assertEquals(4, $this->queue->numberOfItems()); $item = $this->queue->claimItem(); $this->assertEquals('start', $item->data['test-key']); $this->queue->deleteItem($item); $this->assertEquals(3, $this->queue->numberOfItems()); $item = $this->queue->claimItem(); $this->assertEquals('c', $item->data['test-key']); $this->queue->deleteItem($item); $this->assertEquals(2, $this->queue->numberOfItems()); $item = $this->queue->claimItem(); $this->assertEquals('d', $item->data['test-key']); $this->queue->deleteItem($item); $this->assertEquals(1, $this->queue->numberOfItems()); $item = $this->queue->claimItem(); $this->assertEquals('end', $item->data['test-key']); $this->queue->deleteItem($item); $this->assertEquals(0, $this->queue->numberOfItems()); } }