View source
<?php
require_once realpath(dirname(__FILE__)) . '/../TestHelper.php';
class Braintree_TestResource {
static function lookup($id) {
return Braintree_ResourceCollectionTest::$values[intval($id)];
}
static function fetch($ids) {
return array_map("Braintree_TestResource::lookup", $ids);
}
}
class Braintree_ResourceCollectionTest extends PHPUnit_Framework_TestCase {
public static $values = array(
"a",
"b",
"c",
"d",
"e",
);
function testIterateOverResults() {
$response = array(
'searchResults' => array(
'pageSize' => 2,
'ids' => array(
'0',
'1',
'2',
'3',
'4',
),
),
);
$pager = array(
'className' => 'Braintree_TestResource',
'classMethod' => 'fetch',
'methodArgs' => array(),
);
$collection = new Braintree_ResourceCollection($response, $pager);
$count = 0;
$index = 0;
foreach ($collection as $value) {
$this
->assertEquals(Braintree_ResourceCollectionTest::$values[$index], $value);
$index += 1;
$count += 1;
}
$this
->assertEquals(5, $count);
}
function testDoesntIterateWhenNoResults() {
$response = array(
'searchResults' => array(
'pageSize' => 2,
'ids' => array(),
),
);
$pager = array(
'className' => 'Braintree_TestResource',
'classMethod' => 'fetch',
'methodArgs' => array(),
);
$collection = new Braintree_ResourceCollection($response, $pager);
$count = 0;
$index = 0;
foreach ($collection as $value) {
$index += 1;
$count += 1;
break;
}
$this
->assertEquals(0, $count);
$this
->assertEquals(0, $index);
}
}