Skip to content

Commit

Permalink
Portuguese Pluralizer Test
Browse files Browse the repository at this point in the history
  • Loading branch information
cesarep committed Apr 13, 2022
1 parent cbb94bc commit fefad78
Showing 1 changed file with 95 additions and 0 deletions.
95 changes: 95 additions & 0 deletions tests/Integration/Support/PluralizerPortugueseTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
<?php

namespace Illuminate\Tests\Integration\Support;

use Illuminate\Support\Str;
use Orchestra\Testbench\TestCase;

class PluralizerPortugueseTest extends TestCase
{
protected function getEnvironmentSetUp($app)
{
$app['config']->set('app.pluralizer.language', 'portuguese');
}

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));
}
}

0 comments on commit fefad78

Please sign in to comment.