itemsTransferred = null; $itemsTransferred =& $this->itemsTransferred; $this->transferStrategy = new BatchClosureTransfer(function (array $batch) use (&$itemsTransferred) { $itemsTransferred = $batch; return; }); } public function testTransfersBatch() { $batchedItems = array('foo', 'bar', 'baz'); $this->transferStrategy->transfer($batchedItems); $this->assertEquals($batchedItems, $this->itemsTransferred); } public function testTransferBailsOnEmptyBatch() { $batchedItems = array(); $this->transferStrategy->transfer($batchedItems); $this->assertNull($this->itemsTransferred); } /** * @expectedException Guzzle\Common\Exception\InvalidArgumentException */ public function testEnsuresCallableIsCallable() { $foo = new BatchClosureTransfer('uh oh!'); } }