mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-05 20:57:12 +00:00
[Addressing] Fix UTF-8 case-insensitive address comparison (#19085)
| Q | A |-----------------|----- | Branch? | 2.2 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Related tickets | fixes issue #19078 | License | MIT
This commit is contained in:
commit
6844018a46
2 changed files with 30 additions and 1 deletions
|
|
@ -26,7 +26,7 @@ final class AddressComparator implements AddressComparatorInterface
|
|||
private function normalizeAddress(AddressInterface $address): array
|
||||
{
|
||||
return array_map(function ($value) {
|
||||
return strtolower(trim((string) $value));
|
||||
return mb_strtolower(trim((string) $value));
|
||||
}, [
|
||||
$address->getCity(),
|
||||
$address->getCompany(),
|
||||
|
|
|
|||
|
|
@ -107,4 +107,33 @@ final class AddressComparatorTest extends TestCase
|
|||
$secondAddressMock->expects(self::once())->method('getProvinceName')->willReturn('Queensland');
|
||||
self::assertTrue($this->addressComparator->equal($firstAddressMock, $secondAddressMock));
|
||||
}
|
||||
|
||||
public function testIgnoresUnicodeCharacterCase(): void
|
||||
{
|
||||
/** @var AddressInterface&MockObject $firstAddressMock */
|
||||
$firstAddressMock = $this->createMock(AddressInterface::class);
|
||||
/** @var AddressInterface&MockObject $secondAddressMock */
|
||||
$secondAddressMock = $this->createMock(AddressInterface::class);
|
||||
$firstAddressMock->expects(self::once())->method('getCity')->willReturn('ŁÓDŹ');
|
||||
$firstAddressMock->expects(self::once())->method('getStreet')->willReturn('Ryans Dr');
|
||||
$firstAddressMock->expects(self::once())->method('getCompany')->willReturn('Burger');
|
||||
$firstAddressMock->expects(self::once())->method('getPostcode')->willReturn('4350');
|
||||
$firstAddressMock->expects(self::once())->method('getLastName')->willReturn('Jones');
|
||||
$firstAddressMock->expects(self::once())->method('getFirstName')->willReturn('Mia');
|
||||
$firstAddressMock->expects(self::once())->method('getPhoneNumber')->willReturn('999');
|
||||
$firstAddressMock->expects(self::once())->method('getCountryCode')->willReturn('PL');
|
||||
$firstAddressMock->expects(self::once())->method('getProvinceCode')->willReturn(null);
|
||||
$firstAddressMock->expects(self::once())->method('getProvinceName')->willReturn('Łódzkie');
|
||||
$secondAddressMock->expects(self::once())->method('getCity')->willReturn('łódź');
|
||||
$secondAddressMock->expects(self::once())->method('getStreet')->willReturn('Ryans Dr');
|
||||
$secondAddressMock->expects(self::once())->method('getCompany')->willReturn('Burger');
|
||||
$secondAddressMock->expects(self::once())->method('getPostcode')->willReturn('4350');
|
||||
$secondAddressMock->expects(self::once())->method('getLastName')->willReturn('Jones');
|
||||
$secondAddressMock->expects(self::once())->method('getFirstName')->willReturn('Mia');
|
||||
$secondAddressMock->expects(self::once())->method('getPhoneNumber')->willReturn('999');
|
||||
$secondAddressMock->expects(self::once())->method('getCountryCode')->willReturn('PL');
|
||||
$secondAddressMock->expects(self::once())->method('getProvinceCode')->willReturn(null);
|
||||
$secondAddressMock->expects(self::once())->method('getProvinceName')->willReturn('Łódzkie');
|
||||
self::assertTrue($this->addressComparator->equal($firstAddressMock, $secondAddressMock));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue