Skip to content

Commit 0cca72e

Browse files
committed
ref PHPOffice#1325 Added tests
1 parent e7f3318 commit 0cca72e

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
<?php
2+
3+
namespace PhpOffice\PhpSpreadsheetTests\Reader\Xlsx;
4+
5+
use PhpOffice\PhpSpreadsheet\Reader\Xlsx\AutoFilter;
6+
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
7+
use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter as WorksheetAutoFilter;
8+
use PHPUnit\Framework\TestCase;
9+
10+
class AutoFilterTest extends TestCase
11+
{
12+
private function getWorksheetInstance()
13+
{
14+
return $this->getMockBuilder(Worksheet::class)
15+
->disableOriginalConstructor()
16+
->getMock();
17+
}
18+
19+
private function getXMLInstance($ref)
20+
{
21+
return new \SimpleXMLElement(
22+
'<?xml version="1.0" encoding="UTF-8"?>'.
23+
'<root>'.
24+
'<autoFilter ref="'. $ref .'"></autoFilter>'.
25+
'</root>'
26+
);
27+
}
28+
29+
private function getAutoFilterInstance()
30+
{
31+
$instance = $this->getMockBuilder(WorksheetAutoFilter::class)
32+
->disableOriginalConstructor()
33+
->getMock();
34+
return $instance;
35+
}
36+
37+
public function loadDataProvider()
38+
{
39+
return [
40+
['$B3$E8', 0, 'B3E8'],
41+
['$B3:$E8', 1, 'B3:E8'],
42+
];
43+
}
44+
45+
/**
46+
* @dataProvider loadDataProvider
47+
*
48+
* @param string $ref
49+
* @param int $expectedReadAutoFilterCalled
50+
* @param string $expectedRef
51+
*/
52+
public function testLoad($ref, $expectedReadAutoFilterCalled, $expectedRef)
53+
{
54+
$worksheetAutoFilter = $this->getAutoFilterInstance();
55+
$worksheetAutoFilter->expects($this->exactly($expectedReadAutoFilterCalled ? 1 : 0))
56+
->method('setRange')
57+
->with($expectedRef);
58+
59+
$worksheet = $this->getWorksheetInstance();
60+
$worksheet->expects($this->exactly($expectedReadAutoFilterCalled ? 1 : 0))
61+
->method('getAutoFilter')
62+
->willReturn($worksheetAutoFilter);
63+
64+
$autoFilter = new AutoFilter($worksheet, $this->getXMLInstance($ref));
65+
66+
$autoFilter->load();
67+
}
68+
}

0 commit comments

Comments
 (0)