1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
<?php
declare(strict_types=1);
namespace Doctrine\Tests\Inflector\Rules;
use Doctrine\Inflector\Inflector;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
use function sprintf;
abstract class LanguageFunctionalTestCase extends TestCase
{
/** @return string[][] */
abstract public static function dataSampleWords(): array;
/** @dataProvider dataSampleWords */
#[DataProvider('dataSampleWords')]
public function testInflectingSingulars(string $singular, string $plural): void
{
self::assertSame(
$singular,
$this->createInflector()->singularize($plural),
sprintf("'%s' should be singularized to '%s'", $plural, $singular)
);
}
/** @dataProvider dataSampleWords */
#[DataProvider('dataSampleWords')]
public function testInflectingPlurals(string $singular, string $plural): void
{
self::assertSame(
$plural,
$this->createInflector()->pluralize($singular),
sprintf("'%s' should be pluralized to '%s'", $singular, $plural)
);
}
abstract protected function createInflector(): Inflector;
}
|