Passed
Pull Request — master (#4412)
by
unknown
13:33
created

conditionalFormattingProvider()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 67
Code Lines 65

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 65
dl 0
loc 67
rs 8.7636
c 1
b 0
f 0
cc 1
nc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
declare(strict_types=1);
4
5
namespace PhpOffice\PhpSpreadsheetTests\Writer\Html;
6
7
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
8
use PhpOffice\PhpSpreadsheet\Writer\Html as HtmlWriter;
9
use PHPUnit\Framework\TestCase;
10
11
class HtmlConditionalFormattingTest extends TestCase
12
{
13
    private string $data = '';
14
15
    protected function setUp(): void
16
    {
17
        $file = 'tests/data/Writer/Html/HtmlConditionalFormattingTest.xlsx';
18
        $reader = new XlsxReader();
19
        $spreadsheet = $reader->load($file);
20
        $writer = new HtmlWriter($spreadsheet);
21
        $writer->setConditionalFormatting(true);
22
        $this->data = $writer->generateHtmlAll();
23
        $spreadsheet->disconnectWorksheets();
24
    }
25
26
    #[\PHPUnit\Framework\Attributes\DataProvider('conditionalFormattingProvider')]
27
    public function testConditionalFormattingHtmlOutput(int $rowNumber, array $expectedMatches): void
28
    {
29
        self::assertSame(1, preg_match('~<tr class="row' . $rowNumber . '".+?</tr>~ms', $this->data, $matches));
30
        foreach ($expectedMatches as $i => $expected) {
31
            self::assertStringContainsString($expected, $matches[0]);
32
        }
33
    }
34
35
    public static function conditionalFormattingProvider(): array
36
    {
37
        return [
38
            'row 0' => [0, ['<td class="column1 style1 s">Jan</td>',
39
                '<td class="column2 style1 s">Feb</td>',
40
                '<td class="column3 style1 s">Mar</td>',
41
                '<td class="column4 style1 s">Apr</td>',
42
                '<td class="column5 style1 s">May</td>',
43
                '<td class="column6 style1 s">Jun</td>',
44
                '<td class="column7 style1 s">Jul</td>',
45
                '<td class="column8 style1 s">Aug</td>',
46
                '<td class="column9 style1 s">Sep</td>',
47
                '<td class="column10 style1 s">Oct</td>',
48
                '<td class="column11 style1 s">Nov</td>',
49
                '<td class="column12 style1 s">Dec</td>']],
50
            'row 1' => [1, ['<td class="column0 style1 s">Line A</td>',
51
                '<td class="column1 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
52
                '<td class="column2 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
53
                '<td class="column3 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
54
                '<td class="column4 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
55
                '<td class="column5 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">120</td>',
56
                '<td class="column6 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
57
                '<td class="column7 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#9C5700;font-family:\'Arial\';font-size:11pt;background-color:#FFEB9C;">90</td>',
58
                '<td class="column8 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
59
                '<td class="column9 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
60
                '<td class="column10 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
61
                '<td class="column11 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>',
62
                '<td class="column12 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">110</td>']],
63
            'row 2' => [2, ['<td class="column0 style1 s">Line B</td>',
64
                '<td class="column1 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
65
                '<td class="column2 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">80</td>',
66
                '<td class="column3 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
67
                '<td class="column4 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
68
                '<td class="column5 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
69
                '<td class="column6 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
70
                '<td class="column7 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#9C5700;font-family:\'Arial\';font-size:11pt;background-color:#FFEB9C;">60</td>',
71
                '<td class="column8 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
72
                '<td class="column9 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
73
                '<td class="column10 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
74
                '<td class="column11 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>',
75
                '<td class="column12 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">70</td>']],
76
            'row 3' => [3, ['<td class="column0 style1 s">Line C</td>',
77
                '<td class="column1 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
78
                '<td class="column2 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
79
                '<td class="column3 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
80
                '<td class="column4 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
81
                '<td class="column5 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
82
                '<td class="column6 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
83
                '<td class="column7 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
84
                '<td class="column8 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
85
                '<td class="column9 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
86
                '<td class="column10 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>',
87
                '<td class="column11 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#9C0006;font-family:\'Arial\';font-size:11pt;background-color:#FFC7CE;">5</td>',
88
                '<td class="column12 style1 n" style="vertical-align:bottom;border-bottom:1px solid #000000 !important;border-top:1px solid #000000 !important;border-left:1px solid #000000 !important;border-right:1px solid #000000 !important;color:#006100;font-family:\'Arial\';font-size:11pt;background-color:#C6EFCE;">1</td>']],
89
            'row 4' => [4, ['<td class="column0 style1 s">Line D</td>',
90
                '<td class="column1 style1 n">1</td>',
91
                '<td class="column2 style1 n">1</td>',
92
                '<td class="column3 style1 n">1</td>',
93
                '<td class="column4 style1 n">1</td>',
94
                '<td class="column5 style1 n">0</td>',
95
                '<td class="column6 style1 n">1</td>',
96
                '<td class="column7 style1 n">1</td>',
97
                '<td class="column8 style1 n">0</td>',
98
                '<td class="column9 style1 n">1</td>',
99
                '<td class="column10 style1 n">1</td>',
100
                '<td class="column11 style1 n">5</td>',
101
                '<td class="column12 style1 n">1</td>']]];
102
    }
103
}
104