mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-10-07 13:59:43 +00:00
[WIP] Add PostalCodeForAddressReferenceRepository and associated tests
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.
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
<?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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user