respect-validation/tests/unit/Rules/ImageTest.php
Henrique Moody fe3654b270
Improve RuleTestCase class
- Add documentation to the class and its methods;
- Move RuleTestCase to Test namespace;
- Use PHP 7 type hinting;
- Rename getRuleMock() to createValidatableMock().
2018-01-07 14:32:05 +01:00

69 lines
1.8 KiB
PHP

<?php
/*
* This file is part of Respect/Validation.
*
* (c) Alexandre Gomes Gaigalas <alexandre@gaigalas.net>
*
* For the full copyright and license information, please view the "LICENSE.md"
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Respect\Validation\Rules;
use finfo;
use Respect\Validation\Test\RuleTestCase;
use SplFileInfo;
use SplFileObject;
/**
* @group rule
* @covers \Respect\Validation\Rules\Image
*/
class ImageTest extends RuleTestCase
{
public function testShouldAcceptAnInstanceOfFinfoOnConstructor(): void
{
$finfo = new finfo(FILEINFO_MIME_TYPE);
$rule = new Image($finfo);
self::assertSame($rule->fileInfo, $finfo);
}
public function testShouldHaveAnInstanceOfFinfoByDefault(): void
{
$rule = new Image();
self::assertInstanceOf('finfo', $rule->fileInfo);
}
public function providerForValidInput(): array
{
$rule = new Image();
$fixturesDirectory = realpath(__DIR__.'/../../fixtures/');
return [
[$rule, $fixturesDirectory.'/valid-image.gif'],
[$rule, $fixturesDirectory.'/valid-image.jpg'],
[$rule, $fixturesDirectory.'/valid-image.png'],
[$rule, new SplFileInfo($fixturesDirectory.'/valid-image.gif')],
[$rule, new SplFileInfo($fixturesDirectory.'/valid-image.jpg')],
[$rule, new SplFileObject($fixturesDirectory.'/valid-image.png')],
];
}
public function providerForInvalidInput(): array
{
$rule = new Image();
$fixturesDirectory = realpath(__DIR__.'/../../fixtures/');
return [
[$rule, $fixturesDirectory.'/invalid-image.png'],
[$rule, 'asdf'],
[$rule, 1],
[$rule, true],
];
}
}