270 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			270 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | namespace PhpOffice\PhpSpreadsheetTests\Reader\Gnumeric; | ||
|  | 
 | ||
|  | use PhpOffice\PhpSpreadsheet\Cell\DataType; | ||
|  | use PhpOffice\PhpSpreadsheet\Reader\Gnumeric; | ||
|  | use PhpOffice\PhpSpreadsheet\Style\Alignment; | ||
|  | use PhpOffice\PhpSpreadsheet\Style\Border; | ||
|  | use PhpOffice\PhpSpreadsheet\Style\Fill; | ||
|  | use PhpOffice\PhpSpreadsheet\Style\Font; | ||
|  | use PHPUnit\Framework\TestCase; | ||
|  | 
 | ||
|  | class GnumericStylesTest extends TestCase | ||
|  | { | ||
|  |     /** | ||
|  |      * @dataProvider providerBorderStyle | ||
|  |      */ | ||
|  |     public function testBorderStyle(string $style, string $expectedResult): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $borders = $styles['borderStyle']; | ||
|  |         self::assertEquals($expectedResult, $borders[$style]); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testBorderStyleCoverage(): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $expected = $styles['borderStyle']; | ||
|  |         $covered = []; | ||
|  |         foreach ($expected as $key => $val) { | ||
|  |             $covered[$key] = 0; | ||
|  |         } | ||
|  |         $tests = $this->providerBorderStyle(); | ||
|  |         foreach ($tests as $test) { | ||
|  |             $covered[$test[0]] = 1; | ||
|  |         } | ||
|  |         foreach ($covered as $key => $val) { | ||
|  |             self::assertEquals(1, $val, "Borderstyle $key not tested"); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider providerfillType | ||
|  |      */ | ||
|  |     public function testFillType(string $style, string $expectedResult): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $borders = $styles['fillType']; | ||
|  |         self::assertEquals($expectedResult, $borders[$style]); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testFillTypeCoverage(): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $expected = $styles['fillType']; | ||
|  |         $covered = []; | ||
|  |         foreach ($expected as $key => $val) { | ||
|  |             $covered[$key] = 0; | ||
|  |         } | ||
|  |         $tests = $this->providerfillType(); | ||
|  |         foreach ($tests as $test) { | ||
|  |             $covered[$test[0]] = 1; | ||
|  |         } | ||
|  |         foreach ($covered as $key => $val) { | ||
|  |             self::assertEquals(1, $val, "fillType $key not tested"); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider providerHorizontal | ||
|  |      */ | ||
|  |     public function testHorizontal(string $style, string $expectedResult): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $borders = $styles['horizontal']; | ||
|  |         self::assertEquals($expectedResult, $borders[$style]); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testHorizontalCoverage(): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $expected = $styles['horizontal']; | ||
|  |         $covered = []; | ||
|  |         foreach ($expected as $key => $val) { | ||
|  |             $covered[$key] = 0; | ||
|  |         } | ||
|  |         $tests = $this->providerHorizontal(); | ||
|  |         foreach ($tests as $test) { | ||
|  |             $covered[$test[0]] = 1; | ||
|  |         } | ||
|  |         foreach ($covered as $key => $val) { | ||
|  |             self::assertEquals(1, $val, "horizontal $key not tested"); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider providerunderline | ||
|  |      */ | ||
|  |     public function testUnderline(string $style, string $expectedResult): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $borders = $styles['underline']; | ||
|  |         self::assertEquals($expectedResult, $borders[$style]); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testUnderlineCoverage(): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $expected = $styles['underline']; | ||
|  |         $covered = []; | ||
|  |         foreach ($expected as $key => $val) { | ||
|  |             $covered[$key] = 0; | ||
|  |         } | ||
|  |         $tests = $this->providerUnderline(); | ||
|  |         foreach ($tests as $test) { | ||
|  |             $covered[$test[0]] = 1; | ||
|  |         } | ||
|  |         foreach ($covered as $key => $val) { | ||
|  |             self::assertEquals(1, $val, "underline $key not tested"); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider providerVertical | ||
|  |      */ | ||
|  |     public function testVertical(string $style, string $expectedResult): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $borders = $styles['vertical']; | ||
|  |         self::assertEquals($expectedResult, $borders[$style]); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testVerticalCoverage(): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $expected = $styles['vertical']; | ||
|  |         $covered = []; | ||
|  |         foreach ($expected as $key => $val) { | ||
|  |             $covered[$key] = 0; | ||
|  |         } | ||
|  |         $tests = $this->providerVertical(); | ||
|  |         foreach ($tests as $test) { | ||
|  |             $covered[$test[0]] = 1; | ||
|  |         } | ||
|  |         foreach ($covered as $key => $val) { | ||
|  |             self::assertEquals(1, $val, "vertical $key not tested"); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider providerDataType | ||
|  |      */ | ||
|  |     public function testDataType(string $style, string $expectedResult): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $borders = $styles['dataType']; | ||
|  |         self::assertEquals($expectedResult, $borders[$style]); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testDataTypeCoverage(): void | ||
|  |     { | ||
|  |         $styles = Gnumeric::gnumericMappings(); | ||
|  |         $expected = $styles['dataType']; | ||
|  |         self::assertArrayNotHasKey('70', $expected); | ||
|  |         self::assertArrayNotHasKey('80', $expected); | ||
|  |         $covered = []; | ||
|  |         foreach ($expected as $key => $val) { | ||
|  |             $covered[$key] = 0; | ||
|  |         } | ||
|  |         $tests = $this->providerDataType(); | ||
|  |         foreach ($tests as $test) { | ||
|  |             $covered[$test[0]] = 1; | ||
|  |         } | ||
|  |         foreach ($covered as $key => $val) { | ||
|  |             self::assertEquals(1, $val, "dataType $key not tested"); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerBorderStyle(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             ['0', Border::BORDER_NONE], | ||
|  |             ['1', Border::BORDER_THIN], | ||
|  |             ['2', Border::BORDER_MEDIUM], | ||
|  |             ['3', Border::BORDER_SLANTDASHDOT], | ||
|  |             ['4', Border::BORDER_DASHED], | ||
|  |             ['5', Border::BORDER_THICK], | ||
|  |             ['6', Border::BORDER_DOUBLE], | ||
|  |             ['7', Border::BORDER_DOTTED], | ||
|  |             ['8', Border::BORDER_MEDIUMDASHED], | ||
|  |             ['9', Border::BORDER_DASHDOT], | ||
|  |             ['10', Border::BORDER_MEDIUMDASHDOT], | ||
|  |             ['11', Border::BORDER_DASHDOTDOT], | ||
|  |             ['12', Border::BORDER_MEDIUMDASHDOTDOT], | ||
|  |             ['13', Border::BORDER_MEDIUMDASHDOTDOT], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerFillType(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             ['1', Fill::FILL_SOLID], | ||
|  |             ['2', Fill::FILL_PATTERN_DARKGRAY], | ||
|  |             ['3', Fill::FILL_PATTERN_MEDIUMGRAY], | ||
|  |             ['4', Fill::FILL_PATTERN_LIGHTGRAY], | ||
|  |             ['5', Fill::FILL_PATTERN_GRAY125], | ||
|  |             ['6', Fill::FILL_PATTERN_GRAY0625], | ||
|  |             ['7', Fill::FILL_PATTERN_DARKHORIZONTAL], | ||
|  |             ['8', Fill::FILL_PATTERN_DARKVERTICAL], | ||
|  |             ['9', Fill::FILL_PATTERN_DARKDOWN], | ||
|  |             ['10', Fill::FILL_PATTERN_DARKUP], | ||
|  |             ['11', Fill::FILL_PATTERN_DARKGRID], | ||
|  |             ['12', Fill::FILL_PATTERN_DARKTRELLIS], | ||
|  |             ['13', Fill::FILL_PATTERN_LIGHTHORIZONTAL], | ||
|  |             ['14', Fill::FILL_PATTERN_LIGHTVERTICAL], | ||
|  |             ['15', Fill::FILL_PATTERN_LIGHTUP], | ||
|  |             ['16', Fill::FILL_PATTERN_LIGHTDOWN], | ||
|  |             ['17', Fill::FILL_PATTERN_LIGHTGRID], | ||
|  |             ['18', Fill::FILL_PATTERN_LIGHTTRELLIS], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerHorizontal(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             ['1', Alignment::HORIZONTAL_GENERAL], | ||
|  |             ['2', Alignment::HORIZONTAL_LEFT], | ||
|  |             ['4', Alignment::HORIZONTAL_RIGHT], | ||
|  |             ['8', Alignment::HORIZONTAL_CENTER], | ||
|  |             ['16', Alignment::HORIZONTAL_CENTER_CONTINUOUS], | ||
|  |             ['32', Alignment::HORIZONTAL_JUSTIFY], | ||
|  |             ['64', Alignment::HORIZONTAL_CENTER_CONTINUOUS], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerUnderline(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             ['1', Font::UNDERLINE_SINGLE], | ||
|  |             ['2', Font::UNDERLINE_DOUBLE], | ||
|  |             ['3', Font::UNDERLINE_SINGLEACCOUNTING], | ||
|  |             ['4', Font::UNDERLINE_DOUBLEACCOUNTING], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerVertical(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             ['1', Alignment::VERTICAL_TOP], | ||
|  |             ['2', Alignment::VERTICAL_BOTTOM], | ||
|  |             ['4', Alignment::VERTICAL_CENTER], | ||
|  |             ['8', Alignment::VERTICAL_JUSTIFY], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function providerDataType(): array | ||
|  |     { | ||
|  |         return [ | ||
|  |             ['10', DataType::TYPE_NULL], | ||
|  |             ['20', DataType::TYPE_BOOL], | ||
|  |             ['30', DataType::TYPE_NUMERIC], // Integer doesn't exist in Excel
 | ||
|  |             ['40', DataType::TYPE_NUMERIC], // Float
 | ||
|  |             ['50', DataType::TYPE_ERROR], | ||
|  |             ['60', DataType::TYPE_STRING], | ||
|  |             //'70':        //    Cell Range
 | ||
|  |             //'80':        //    Array
 | ||
|  |         ]; | ||
|  |     } | ||
|  | } |