Passed
Pull Request — master (#4240)
by Owen
13:17
created

DataValidationTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 49
dl 0
loc 58
rs 10
c 1
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testWholeRow() 0 26 1
A testWholeColumn() 0 28 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Writer\Xls;
6
7
use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
8
use PhpOffice\PhpSpreadsheet\Spreadsheet;
9
use PhpOffice\PhpSpreadsheetTests\Functional\AbstractFunctional;
10
11
class DataValidationTest extends AbstractFunctional
12
{
13
    public function testWholeRow(): void
14
    {
15
        $spreadsheet = new Spreadsheet();
16
        $sheet = $spreadsheet->getActiveSheet();
17
        $dv = new DataValidation();
18
        $dv->setType(DataValidation::TYPE_NONE);
19
        $sheet->setDataValidation('C1:F1', $dv);
20
        $dv = new DataValidation();
21
        $dv->setType(DataValidation::TYPE_LIST)
22
            ->setShowDropDown(true)
23
            ->setFormula1('"Item A,Item B,Item C"')
24
            ->setErrorStyle(DataValidation::STYLE_STOP)
25
            ->setShowErrorMessage(true)
26
            ->setErrorTitle('Input Error')
27
            ->setError('Value is not a member of allowed list');
28
        $sheet->setDataValidation('1:1', $dv);
29
        $dv = new DataValidation();
30
        $dv->setType(DataValidation::TYPE_NONE);
31
        $sheet->setDataValidation('H1', $dv);
32
33
        $robj = $this->writeAndReload($spreadsheet, 'Xls');
34
        $spreadsheet->disconnectWorksheets();
35
        $sheet0 = $robj->getActiveSheet();
36
        self::assertSame(['H1', 'C1:F1', '1:1'], array_keys($sheet0->getDataValidationCollection()));
37
        self::assertTrue(true);
38
        $robj->disconnectWorksheets();
39
    }
40
41
    public function testWholeColumn(): void
42
    {
43
        $spreadsheet = new Spreadsheet();
44
        $sheet = $spreadsheet->getActiveSheet();
45
        $sheet->getCell('C1')->setValue(1);
46
        $sheet->getCell('C2')->setValue(2);
47
        $sheet->getCell('C3')->setValue(3);
48
        $dv = $sheet->getDataValidation('A5:A7');
49
        $dv->setType(DataValidation::TYPE_NONE);
50
        $dv = new DataValidation();
51
        $dv->setType(DataValidation::TYPE_LIST)
52
            ->setShowDropDown(true)
53
            ->setFormula1('$C$1:$C$3')
54
            ->setErrorStyle(DataValidation::STYLE_STOP)
55
            ->setShowErrorMessage(true)
56
            ->setErrorTitle('Input Error')
57
            ->setError('Value is not a member of allowed list');
58
        $sheet->setDataValidation('A:A', $dv);
59
        $dv = new DataValidation();
60
        $dv->setType(DataValidation::TYPE_NONE);
61
        $sheet->setDataValidation('A9', $dv);
62
63
        $robj = $this->writeAndReload($spreadsheet, 'Xlsx');
64
        $spreadsheet->disconnectWorksheets();
65
        $sheet0 = $robj->getActiveSheet();
66
        self::assertSame(['A9', 'A5:A7', 'A:A'], array_keys($sheet0->getDataValidationCollection()));
67
        self::assertTrue(true);
68
        $robj->disconnectWorksheets();
69
    }
70
}
71