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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
<?php
namespace Illuminate\Tests\Integration\Support;
use Illuminate\Support\Pluralizer;
use Illuminate\Support\Str;
use Orchestra\Testbench\TestCase;
class PluralizerPortugueseTest extends TestCase
{
protected function setUp(): void
{
parent::setUp();
Pluralizer::useLanguage('portuguese');
}
protected function tearDown(): void
{
parent::tearDown();
Pluralizer::useLanguage('english');
}
public function testBasicSingular()
{
$this->assertSame('herói', Str::singular('heróis'));
$this->assertSame('irmão', Str::singular('irmãos'));
$this->assertSame('chafariz', Str::singular('chafarizes'));
$this->assertSame('colher', Str::singular('colheres'));
$this->assertSame('modelo', Str::singular('modelos'));
$this->assertSame('venda', Str::singular('vendas'));
$this->assertSame('usuário', Str::singular('usuários'));
$this->assertSame('comissão', Str::singular('comissões'));
}
public function testIrregulars()
{
$this->assertSame('males', Str::plural('mal'));
$this->assertSame('lápis', Str::singular('lápis'));
}
public function testBasicPlural()
{
$this->assertSame('fênix', Str::plural('fênix'));
$this->assertSame('palavras', Str::plural('palavra'));
$this->assertSame('modelos', Str::plural('modelo'));
$this->assertSame('vendas', Str::plural('venda'));
$this->assertSame('usuários', Str::plural('usuário'));
$this->assertSame('comissões', Str::plural('comissão'));
}
public function testCaseSensitiveSingularUsage()
{
$this->assertSame('Criança', Str::singular('Crianças'));
$this->assertSame('CIDADÃO', Str::singular('CIDADÃOS'));
}
public function testCaseSensitiveSingularPlural()
{
$this->assertSame('Crianças', Str::plural('Criança'));
$this->assertSame('CIDADÃOS', Str::plural('CIDADÃO'));
$this->assertSame('Testes', Str::plural('Teste'));
}
public function testPluralAppliedForStringEndingWithNumericCharacter()
{
$this->assertSame('Usuário1s', Str::plural('Usuário1'));
$this->assertSame('Usuário2s', Str::plural('Usuário2'));
$this->assertSame('Usuário3s', Str::plural('Usuário3'));
}
public function testPluralSupportsArrays()
{
$this->assertSame('usuários', Str::plural('usuário', []));
$this->assertSame('usuário', Str::plural('usuário', ['um']));
$this->assertSame('usuários', Str::plural('usuário', ['um', 'dois']));
}
public function testPluralSupportsCollections()
{
$this->assertSame('usuários', Str::plural('usuário', collect()));
$this->assertSame('usuário', Str::plural('usuário', collect(['um'])));
$this->assertSame('usuários', Str::plural('usuário', collect(['um', 'dois'])));
}
public function testPluralStudlySupportsArrays()
{
$this->assertPluralStudly('AlgumUsuários', 'AlgumUsuário', []);
$this->assertPluralStudly('AlgumUsuário', 'AlgumUsuário', ['um']);
$this->assertPluralStudly('AlgumUsuários', 'AlgumUsuário', ['um', 'dois']);
}
public function testPluralStudlySupportsCollections()
{
$this->assertPluralStudly('AlgumUsuários', 'AlgumUsuário', collect());
$this->assertPluralStudly('AlgumUsuário', 'AlgumUsuário', collect(['um']));
$this->assertPluralStudly('AlgumUsuários', 'AlgumUsuário', collect(['um', 'dois']));
}
private function assertPluralStudly($expected, $value, $count = 2)
{
$this->assertSame($expected, Str::pluralStudly($value, $count));
}
}
|