Use the `PHPUnit\Framework\TestCase` notation instead of `PHPUnit_Framework_TestCase` while extending our TestCases. This will help us migrate to PHPUnit 6, that [no longer support snake case class names](https://github.com/sebastianbergmann/phpunit/blob/master/ChangeLog-6.0.md#changed-1).
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace PhpOffice\PhpSpreadsheetTests\Cell;
 | 
						|
 | 
						|
use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
 | 
						|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
 | 
						|
use PHPUnit\Framework\TestCase;
 | 
						|
 | 
						|
class DataValidatorTest extends TestCase
 | 
						|
{
 | 
						|
    public function testNoValidation()
 | 
						|
    {
 | 
						|
        $spreadsheet = new Spreadsheet();
 | 
						|
        $sheet = $spreadsheet->getActiveSheet();
 | 
						|
        $testCell = $sheet->getCell('A1');
 | 
						|
 | 
						|
        self::assertTrue($testCell->hasValidValue(), 'a cell without any validation data is always valid');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testUnsupportedType()
 | 
						|
    {
 | 
						|
        $spreadsheet = new Spreadsheet();
 | 
						|
        $sheet = $spreadsheet->getActiveSheet();
 | 
						|
        $testCell = $sheet->getCell('A1');
 | 
						|
 | 
						|
        $validation = $testCell->getDataValidation();
 | 
						|
        $validation->setType(DataValidation::TYPE_CUSTOM);
 | 
						|
        $validation->setAllowBlank(true);
 | 
						|
 | 
						|
        self::assertFalse($testCell->hasValidValue(), 'cannot assert that value is valid when the validation type is not supported');
 | 
						|
    }
 | 
						|
 | 
						|
    public function testList()
 | 
						|
    {
 | 
						|
        $spreadsheet = new Spreadsheet();
 | 
						|
        $sheet = $spreadsheet->getActiveSheet();
 | 
						|
        $testCell = $sheet->getCell('A1');
 | 
						|
 | 
						|
        $validation = $testCell->getDataValidation();
 | 
						|
        $validation->setType(DataValidation::TYPE_LIST);
 | 
						|
 | 
						|
        // blank value
 | 
						|
        $testCell->setValue('');
 | 
						|
        $validation->setAllowBlank(true);
 | 
						|
        self::assertTrue($testCell->hasValidValue(), 'cell can be empty');
 | 
						|
        $validation->setAllowBlank(false);
 | 
						|
        self::assertFalse($testCell->hasValidValue(), 'cell can not be empty');
 | 
						|
 | 
						|
        // inline list
 | 
						|
        $validation->setFormula1('"yes,no"');
 | 
						|
        $testCell->setValue('foo');
 | 
						|
        self::assertFalse($testCell->hasValidValue(), "cell value ('foo') is not allowed");
 | 
						|
        $testCell->setValue('yes');
 | 
						|
        self::assertTrue($testCell->hasValidValue(), "cell value ('yes') has to be allowed");
 | 
						|
 | 
						|
        // list from cells
 | 
						|
        $sheet->getCell('B1')->setValue(5);
 | 
						|
        $sheet->getCell('B2')->setValue(6);
 | 
						|
        $sheet->getCell('B3')->setValue(7);
 | 
						|
        $testCell = $sheet->getCell('A1'); // redefine $testCell, because it has broken coordinates after using other cells
 | 
						|
        $validation->setFormula1('B1:B3');
 | 
						|
        $testCell->setValue('10');
 | 
						|
        self::assertFalse($testCell->hasValidValue(), "cell value ('10') is not allowed");
 | 
						|
        $testCell = $sheet->getCell('A1'); // redefine $testCell, because it has broken coordinates after using other cells
 | 
						|
        $testCell->setValue('5');
 | 
						|
        self::assertTrue($testCell->hasValidValue(), "cell value ('5') has to be allowed");
 | 
						|
 | 
						|
        $testCell = $sheet->getCell('A1'); // redefine $testCell, because it has broken coordinates after using other cells
 | 
						|
        $validation->setFormula1('broken : cell : coordinates');
 | 
						|
 | 
						|
        self::assertFalse($testCell->hasValidValue(), 'invalid formula should not throw exceptions');
 | 
						|
    }
 | 
						|
}
 |