![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-customer/Test/Unit/Model/Validator/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Customer\Test\Unit\Model\Validator; use Magento\Customer\Model\Validator\Name; use Magento\Customer\Model\Customer; use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; /** * Customer name validator tests */ class NameTest extends TestCase { /** * @var Name */ private Name $nameValidator; /** * @var Customer|MockObject */ private MockObject $customerMock; /** * @return void */ protected function setUp(): void { $this->nameValidator = new Name; $this->customerMock = $this ->getMockBuilder(Customer::class) ->disableOriginalConstructor() ->addMethods(['getFirstname', 'getLastname', 'getMiddlename']) ->getMock(); } /** * Test for allowed apostrophe and other punctuation characters in customer names * * @param string $firstName * @param string $middleName * @param string $lastName * @param string $message * @return void * @dataProvider expectedPunctuationInNamesDataProvider */ public function testValidateCorrectPunctuationInNames( string $firstName, string $middleName, string $lastName, string $message ) { $this->customerMock->expects($this->once())->method('getFirstname')->willReturn($firstName); $this->customerMock->expects($this->once())->method('getMiddlename')->willReturn($middleName); $this->customerMock->expects($this->once())->method('getLastname')->willReturn($lastName); $isValid = $this->nameValidator->isValid($this->customerMock); $this->assertTrue($isValid, $message); } /** * @return array */ public function expectedPunctuationInNamesDataProvider(): array { return [ [ 'firstName' => 'John', 'middleName' => '', 'lastNameName' => 'O’Doe', 'message' => 'Inclined apostrophe must be allowed in names (iOS Smart Punctuation compatibility)' ], [ 'firstName' => 'John', 'middleName' => '', 'lastNameName' => 'O\'Doe', 'message' => 'Legacy straight apostrophe must be allowed in names' ], [ 'firstName' => 'John', 'middleName' => '', 'lastNameName' => 'O`Doe', 'message' => 'Grave accent back quote character must be allowed in names' ] ]; } }