%PDF- %PDF-
Direktori : /www/varak.net/dmarc.varak.net/tests/classes/ |
Current File : /www/varak.net/dmarc.varak.net/tests/classes/TextTableTest.php |
<?php namespace Liuch\DmarcSrg; class TextTableTest extends \PHPUnit\Framework\TestCase { private $table = null; private $rlines = [ '+--------------------------+------+--------+', '| t1 | ttl2 | title3 |', '| 2. Long long long string | ss1 | 1111 |', '| 1. Some string | ss2 | 9 |', '+--------------------------+------------+--------+', '| t1 | ttl2 | title3 |', '| 2. Long long long string | ss1 | 1111 |', '| 1. Some string | ss2 | 9 |', '*==========================*======*========*', '! t1 ! ttl2 ! title3 !', '! 2. Long long long string ! ss1 ! 1111 !', '! 1. Some string ! ss2 ! 9 !', 't1 ttl2 title3', '2. Long long long string ss1 1111', '1. Some string ss2 9', '| t1 | ttl2 | title3 |', '| 2. Long long long string | ss1 | 1111 |', '| 1. Some string | ss2 | 9 |', ]; public function setUp(): void { $this->table = new TextTable([ 't1', 'ttl2', 'title3' ]); $this->table->appendRow([ '2. Long long long string', 'ss1', 1111 ]); $this->table->appendRow([ '1. Some string', 'ss2', 9 ]); } public function testSimple(): void { ob_start(); $this->table->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(0, 1, 0, 2, 3, 0), $output); } public function testMinColumnWidth(): void { ob_start(); $this->table->setMinColumnWidth(1, 10)->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(4, 5, 4, 6, 7, 4), $output); } public function testMimColumnsWidth(): void { ob_start(); $this->table->setMinColumnsWidth([ 1, 10, 2 ])->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(4, 5, 4, 6, 7, 4), $output); } public function testSortByString(): void { ob_start(); $this->table->sortBy(0)->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(0, 1, 0, 3, 2, 0), $output); } public function testSortByInt(): void { ob_start(); $this->table->sortBy(2)->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(0, 1, 0, 3, 2, 0), $output); } public function testMinColumnWidthAndSortBy(): void { ob_start(); $this->table->setMinColumnWidth(1, 10)->sortBy(2)->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(4, 5, 4, 7, 6, 4), $output); } public function testSetColumnAlignment(): void { ob_start(); $this->table->setColumnAlignment(0, 'right')->setColumnAlignment(1, 'right') ->setColumnAlignment(2, 'left')->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(0, 15, 0, 16, 17, 0), $output); } public function testToArray(): void { $this->assertEquals($this->genResultArray(0, 1, 0, 2, 3, 0), $this->table->toArray()); } public function testSetBorders(): void { ob_start(); $this->table->setBorders('=', '!', '*')->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(8, 9, 8, 10, 11, 8), $output); } public function testSetEmptyBorders(): void { ob_start(); $this->table->setBorders('', '', '')->output(); $output = ob_get_contents(); ob_end_clean(); $this->assertEquals($this->genResultText(12, 13, 14), $output); } private function genResultArray(...$lines): array { $res = []; foreach ($lines as $ln) { $res[] = $this->rlines[$ln]; } return $res; } private function genResultText(...$lines): string { return implode(PHP_EOL, $this->genResultArray(...$lines)) . PHP_EOL; } }