mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-07 18:21:23 +02:00
53 lines
1.3 KiB
PHP
53 lines
1.3 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Tests for the {@link GroupedList} list decorator.
|
||
|
*
|
||
|
* @package sapphire
|
||
|
* @subpackage tests
|
||
|
*/
|
||
|
class GroupedListTest extends SapphireTest {
|
||
|
|
||
|
public function testGroupBy() {
|
||
|
$list = new GroupedList(new ArrayList(array(
|
||
|
array('Name' => 'AAA'),
|
||
|
array('Name' => 'AAA'),
|
||
|
array('Name' => 'BBB'),
|
||
|
array('Name' => 'BBB'),
|
||
|
array('Name' => 'AAA'),
|
||
|
array('Name' => 'BBB'),
|
||
|
array('Name' => 'CCC'),
|
||
|
array('Name' => 'CCC')
|
||
|
)));
|
||
|
|
||
|
$grouped = $list->groupBy('Name');
|
||
|
|
||
|
$this->assertEquals(3, count($grouped));
|
||
|
$this->assertEquals(3, count($grouped['AAA']));
|
||
|
$this->assertEquals(3, count($grouped['BBB']));
|
||
|
$this->assertEquals(2, count($grouped['CCC']));
|
||
|
}
|
||
|
|
||
|
public function testGroupedBy() {
|
||
|
$list = new GroupedList(new ArrayList(array(
|
||
|
array('Name' => 'AAA'),
|
||
|
array('Name' => 'AAA'),
|
||
|
array('Name' => 'BBB'),
|
||
|
array('Name' => 'BBB'),
|
||
|
array('Name' => 'AAA'),
|
||
|
array('Name' => 'BBB'),
|
||
|
array('Name' => 'CCC'),
|
||
|
array('Name' => 'CCC')
|
||
|
)));
|
||
|
|
||
|
$grouped = $list->GroupedBy('Name');
|
||
|
$first = $grouped->first();
|
||
|
$last = $grouped->last();
|
||
|
|
||
|
$this->assertEquals(3, count($first->Children));
|
||
|
$this->assertEquals('AAA', $first->Name);
|
||
|
$this->assertEquals(2, count($last->Children));
|
||
|
$this->assertEquals('CCC', $last->Name);
|
||
|
}
|
||
|
|
||
|
}
|