mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-10-06 13:29:43 +00:00
Introduced `PostalCodeForAddressReferenceRepository` and its interface to support optimized postal code search using materialized views. Updated `AddressReferenceRepository` to improve query handling. Added test coverage for the new repository functionality.
62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?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\Repository;
|
|
|
|
use Chill\MainBundle\Repository\PostalCodeForAddressReferenceRepository;
|
|
use Doctrine\DBAL\Connection;
|
|
use PHPUnit\Framework\Attributes\DataProvider;
|
|
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
|
|
|
|
/**
|
|
* @internal
|
|
*
|
|
* @coversNothing
|
|
*/
|
|
final class PostalCodeForAddressReferenceRepositoryTest extends KernelTestCase
|
|
{
|
|
private Connection $connection;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
self::bootKernel();
|
|
$this->connection = self::getContainer()->get(Connection::class);
|
|
}
|
|
|
|
/**
|
|
* @return iterable<string[]>
|
|
*/
|
|
public static function provideSearches(): iterable
|
|
{
|
|
yield [''];
|
|
yield [' '];
|
|
yield ['hugo'];
|
|
yield [' hugo'];
|
|
yield ['hugo '];
|
|
yield ['rue victor hugo'];
|
|
yield ['rue victor hugo'];
|
|
}
|
|
|
|
#[DataProvider('provideSearches')]
|
|
public function testFindPostalCodeDoesNotErrorAndIsIterable(string $search): void
|
|
{
|
|
$repository = new PostalCodeForAddressReferenceRepository($this->connection);
|
|
|
|
$result = $repository->findPostalCode($search);
|
|
|
|
self::assertIsIterable($result);
|
|
|
|
// Ensure it can be converted to an array (and iterate without error)
|
|
$rows = \is_array($result) ? $result : iterator_to_array($result, false);
|
|
self::assertIsArray($rows);
|
|
}
|
|
}
|