@@ -298,6 +298,29 @@ public function testDequeueItemWithArg()
298298 $ this ->assertEquals (Resque::dequeue ($ queue , $ test ), 1 );
299299 #$this->assertEquals(Resque::size($queue), 1);
300300 }
301+
302+ public function testDequeueSeveralItemsWithArgs ()
303+ {
304+ // GIVEN
305+ $ queue = 'jobs ' ;
306+ $ args = array ('foo ' => 1 , 'bar ' => 10 );
307+ $ removeArgs = array ('foo ' => 1 , 'bar ' => 2 );
308+ Resque::enqueue ($ queue , 'Test_Job_Dequeue9 ' , $ args );
309+ Resque::enqueue ($ queue , 'Test_Job_Dequeue9 ' , $ removeArgs );
310+ Resque::enqueue ($ queue , 'Test_Job_Dequeue9 ' , $ removeArgs );
311+ $ this ->assertEquals (Resque::size ($ queue ), 3 );
312+
313+ // WHEN
314+ $ test = array ('Test_Job_Dequeue9 ' => $ removeArgs );
315+ $ removedItems = Resque::dequeue ($ queue , $ test );
316+
317+ // THEN
318+ $ this ->assertEquals ($ removedItems , 2 );
319+ $ this ->assertEquals (Resque::size ($ queue ), 1 );
320+ $ item = Resque::pop ($ queue );
321+ $ this ->assertInternalType ('array ' , $ item ['args ' ]);
322+ $ this ->assertEquals (10 , $ item ['args ' ][0 ]['bar ' ], 'Wrong items were dequeued from queue! ' );
323+ }
301324
302325 public function testDequeueItemWithUnorderedArg ()
303326 {
0 commit comments