Files
PdoWrapper/tests/CollectionTest.php
2023-10-31 10:42:12 +01:00

52 lines
1.3 KiB
PHP

<?php
use Kletellier\PdoWrapper\Collection;
test("collection", function () {
$arr = [];
for ($i=0; $i < 11; $i++) {
$arr[] = $i;
}
expect(count($arr))->toBe(11);
$coll = new Collection($arr);
expect($coll->count())->toBe(11);
expect($coll->first())->toBe(0);
expect($coll->last())->toBe(10);
$filt = $coll->filter(function($item){ return $item<5;});
expect($filt)->toBeInstanceOf(Collection::class);
expect($filt->count())->toBe(5);
expect($filt->first())->toBe(0);
expect($filt->last())->toBe(4);
// no change in initial collection
expect($coll->count())->toBe(11);
expect($coll->empty())->toBe(false);
expect($coll->items())->toBeArray();
expect(count($coll->items()))->toBe(11);
$incr = 0;
$coll->each(function($item) use(&$incr){
$incr++;
});
expect($incr)->toBe(11);
$colmap = $coll->map(function($item) {
return $item+1;
});
expect($colmap)->toBeInstanceOf(Collection::class);
expect($colmap->count())->toBe(11);
expect($colmap->first())->toBe(1);
expect($colmap->last())->toBe(11);
$init = 0;
$reduce = $coll->reduce(function($item,$carry){
return $item + $carry;
},$init);
expect($reduce)->toBe(55);
});