mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-25 08:05:00 +00:00
Ajout de commentaires supplémentaires aux motifs
This commit is contained in:
@@ -12,6 +12,7 @@ declare(strict_types=1);
|
||||
namespace Chill\MainBundle\Tests\Phonenumber;
|
||||
|
||||
use Chill\MainBundle\Phonenumber\PhonenumberHelper;
|
||||
use libphonenumber\PhoneNumber;
|
||||
use libphonenumber\PhoneNumberUtil;
|
||||
use Psr\Log\NullLogger;
|
||||
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
||||
@@ -31,6 +32,7 @@ final class PhonenumberHelperTest extends KernelTestCase
|
||||
public function testFormatPhonenumbers(string $defaultCarrierCode, string $phoneNumber, string $expected)
|
||||
{
|
||||
$util = PhoneNumberUtil::getInstance();
|
||||
|
||||
$subject = new PhonenumberHelper(
|
||||
new ArrayAdapter(),
|
||||
new ParameterBag([
|
||||
@@ -70,4 +72,47 @@ final class PhonenumberHelperTest extends KernelTestCase
|
||||
'00 33 6 23 12 45 54',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider providePhoneNumbersToParse
|
||||
*/
|
||||
public function testParsePhonenumbers(string $defaultCarrierCode, string $phoneNumber, PhoneNumber $expected): void
|
||||
{
|
||||
$subject = new PhonenumberHelper(
|
||||
new ArrayAdapter(),
|
||||
new ParameterBag([
|
||||
'chill_main.phone_helper' => [
|
||||
'default_carrier_code' => $defaultCarrierCode,
|
||||
],
|
||||
]),
|
||||
new NullLogger()
|
||||
);
|
||||
|
||||
$actual = $subject->parse($phoneNumber);
|
||||
|
||||
self::assertTrue($expected->equals($actual));
|
||||
}
|
||||
|
||||
public static function providePhoneNumbersToParse(): iterable
|
||||
{
|
||||
$util = PhoneNumberUtil::getInstance();
|
||||
|
||||
yield [
|
||||
'FR',
|
||||
'+32486544999',
|
||||
$util->parse('+32486544999', 'FR'),
|
||||
];
|
||||
|
||||
yield [
|
||||
'FR',
|
||||
'32486544999',
|
||||
$util->parse('+32486544999', 'FR'),
|
||||
];
|
||||
|
||||
yield [
|
||||
'FR',
|
||||
'0228858040',
|
||||
$util->parse('+33228858040', 'FR'),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* Chill is a software for social workers
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Chill\MainBundle\Tests\Validation\Validator;
|
||||
|
||||
use Chill\MainBundle\Entity\User;
|
||||
use Chill\MainBundle\Entity\UserGroup;
|
||||
use Chill\MainBundle\Templating\TranslatableStringHelperInterface;
|
||||
use Chill\MainBundle\Validation\Validator\UserGroupDoNotExclude;
|
||||
use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @coversNothing
|
||||
*/
|
||||
class UserGroupDoNotExcludeTest extends ConstraintValidatorTestCase
|
||||
{
|
||||
protected function createValidator()
|
||||
{
|
||||
return new UserGroupDoNotExclude(
|
||||
new class () implements TranslatableStringHelperInterface {
|
||||
public function localize(array $translatableStrings): ?string
|
||||
{
|
||||
return $translatableStrings['fr'];
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public function testEmptyArrayIsValid(): void
|
||||
{
|
||||
$this->validator->validate([], new \Chill\MainBundle\Validation\Constraint\UserGroupDoNotExclude());
|
||||
|
||||
$this->assertNoViolation();
|
||||
}
|
||||
|
||||
public function testMixedUserGroupAndUsersIsValid(): void
|
||||
{
|
||||
$this->validator->validate(
|
||||
[new User(), new UserGroup()],
|
||||
new \Chill\MainBundle\Validation\Constraint\UserGroupDoNotExclude()
|
||||
);
|
||||
|
||||
$this->assertNoViolation();
|
||||
}
|
||||
|
||||
public function testDifferentExcludeKeysIsValid(): void
|
||||
{
|
||||
$this->validator->validate(
|
||||
[(new UserGroup())->setExcludeKey('A'), (new UserGroup())->setExcludeKey('B')],
|
||||
new \Chill\MainBundle\Validation\Constraint\UserGroupDoNotExclude()
|
||||
);
|
||||
|
||||
$this->assertNoViolation();
|
||||
}
|
||||
|
||||
public function testMultipleGroupsWithEmptyExcludeKeyIsValid(): void
|
||||
{
|
||||
$this->validator->validate(
|
||||
[(new UserGroup())->setExcludeKey(''), (new UserGroup())->setExcludeKey('')],
|
||||
new \Chill\MainBundle\Validation\Constraint\UserGroupDoNotExclude()
|
||||
);
|
||||
|
||||
$this->assertNoViolation();
|
||||
}
|
||||
|
||||
public function testSameExclusionKeyWillRaiseError(): void
|
||||
{
|
||||
$this->validator->validate(
|
||||
[
|
||||
(new UserGroup())->setExcludeKey('A')->setLabel(['fr' => 'Group 1']),
|
||||
(new UserGroup())->setExcludeKey('A')->setLabel(['fr' => 'Group 2']),
|
||||
],
|
||||
new \Chill\MainBundle\Validation\Constraint\UserGroupDoNotExclude()
|
||||
);
|
||||
|
||||
$this->buildViolation('The groups {{ excluded_groups }} do exclude themselves. Please choose one between them')
|
||||
->setParameter('excluded_groups', 'Group 1, Group 2')
|
||||
->setCode('e16c8226-0090-11ef-8560-f7239594db09')
|
||||
->assertRaised();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user