xref: /plugin/struct/_test/AggregationFilterTest.php (revision cfefffa4d2c67e8227ac2e612157363595988ec5)
1<?php
2
3namespace dokuwiki\plugin\struct\test;
4
5
6class AggregationFilterTest extends StructTest
7{
8    protected $items = [
9        [['green', 'yellow'], 'car', 'audi', 'a80'],
10        [[], 'car', 'audi', 'a4'],
11        [['red', 'black'], 'car', 'bmw', 'i3'],
12        [['green', 'blue'], 'laptop', 'apple', 'pro 16'],
13        [['blue', 'gray'], 'car', 'bmw', 'mini'],
14        [['red', 'black'], 'car', 'bmw', 'z1'],
15        [['red', 'blue'], 'laptop', 'apple', 'air'],
16        [['black', 'red'], 'laptop', 'apple', 'm1'],
17        [[], 'laptop', 'dell', 'xps'],
18        [['black', 'green'], '', 'audi', 'quattro'],
19        [['blue', 'yellow'], '', 'dell', 'inspiron'],
20        [['gray', 'yellow'], 'laptop', 'dell', 'latitude'],
21    ];
22
23    public function testGetAllColumnValues()
24    {
25        $result = $this->createAggregationResult($this->items);
26        $filter = new mock\AggregationFilter();
27        $values = $filter->getAllColumnValues($result);
28
29        $this->assertCount(4, $values);
30
31        // we expect value => displayValue pairs, sorted by displayValue
32        $this->assertSame(
33            [
34                'black' => 'black',
35                'blue' => 'blue',
36                'gray' => 'gray',
37                'green' => 'green',
38                'red' => 'red',
39                'yellow' => 'yellow'
40            ],
41            $values[0]['values']
42        );
43
44        $this->assertEquals(
45            'Label 1',
46            $values[0]['label']
47        );
48
49        $this->assertSame(
50            [
51                'car' => 'car',
52                'laptop' => 'laptop'
53            ],
54            $values[1]['values']
55        );
56
57        $this->assertEquals(
58            'Label 2',
59            $values[1]['label']
60        );
61    }
62}
63