From 43e2746bbe36e3c3647d2b260977b31ff44e8d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Gangloff?= Date: Mon, 27 Oct 2025 17:40:31 +0100 Subject: [PATCH] test: add test for FinDomainCollectionFromEntityProvider --- src/Entity/Domain.php | 4 +-- ...indDomainCollectionFromEntityProvider.php} | 2 +- tests/Controller/MeControllerTest.php | 2 -- .../Controller/RegistrationControllerTest.php | 2 -- ...DomainCollectionFromEntityProviderTest.php | 35 +++++++++++++++++++ 5 files changed, 38 insertions(+), 7 deletions(-) rename src/State/{FindDomainListFromEntityProvider.php => FindDomainCollectionFromEntityProvider.php} (96%) create mode 100644 tests/State/FindDomainCollectionFromEntityProviderTest.php diff --git a/src/Entity/Domain.php b/src/Entity/Domain.php index dbc0fe9..819fe6c 100644 --- a/src/Entity/Domain.php +++ b/src/Entity/Domain.php @@ -12,7 +12,7 @@ use App\Exception\MalformedDomainException; use App\Repository\DomainRepository; use App\Service\RDAPService; use App\State\AutoRegisterDomainProvider; -use App\State\FindDomainListFromEntityProvider; +use App\State\FindDomainCollectionFromEntityProvider; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\DBAL\Types\Types; @@ -42,7 +42,7 @@ use Symfony\Component\Serializer\Attribute\SerializedName; 'event:list', ], ], - provider: FindDomainListFromEntityProvider::class, + provider: FindDomainCollectionFromEntityProvider::class, parameters: [ 'registrant' => new QueryParameter(description: 'The exact name of the registrant (case insensitive)', required: true), ] diff --git a/src/State/FindDomainListFromEntityProvider.php b/src/State/FindDomainCollectionFromEntityProvider.php similarity index 96% rename from src/State/FindDomainListFromEntityProvider.php rename to src/State/FindDomainCollectionFromEntityProvider.php index 5071ceb..a954a5c 100644 --- a/src/State/FindDomainListFromEntityProvider.php +++ b/src/State/FindDomainCollectionFromEntityProvider.php @@ -10,7 +10,7 @@ use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Query\ResultSetMapping; use Symfony\Component\HttpFoundation\RequestStack; -readonly class FindDomainListFromEntityProvider implements ProviderInterface +readonly class FindDomainCollectionFromEntityProvider implements ProviderInterface { public function __construct( private RequestStack $requestStack, diff --git a/tests/Controller/MeControllerTest.php b/tests/Controller/MeControllerTest.php index 79876c2..c6789a9 100644 --- a/tests/Controller/MeControllerTest.php +++ b/tests/Controller/MeControllerTest.php @@ -8,11 +8,9 @@ use App\Factory\UserFactory; use App\Tests\AuthenticatedUserTrait; use Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface; use Zenstruck\Foundry\Test\Factories; -use Zenstruck\Foundry\Test\ResetDatabase; final class MeControllerTest extends ApiTestCase { - use ResetDatabase; use Factories; use AuthenticatedUserTrait; diff --git a/tests/Controller/RegistrationControllerTest.php b/tests/Controller/RegistrationControllerTest.php index ad297b2..893f81e 100644 --- a/tests/Controller/RegistrationControllerTest.php +++ b/tests/Controller/RegistrationControllerTest.php @@ -7,11 +7,9 @@ use App\Factory\UserFactory; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; use Zenstruck\Foundry\Test\Factories; -use Zenstruck\Foundry\Test\ResetDatabase; final class RegistrationControllerTest extends ApiTestCase { - use ResetDatabase; use Factories; protected static ContainerInterface $container; diff --git a/tests/State/FindDomainCollectionFromEntityProviderTest.php b/tests/State/FindDomainCollectionFromEntityProviderTest.php new file mode 100644 index 0000000..4f4c488 --- /dev/null +++ b/tests/State/FindDomainCollectionFromEntityProviderTest.php @@ -0,0 +1,35 @@ +request('GET', '/api/domains/nic.fr')->toArray(); + + $this->assertResponseIsSuccessful(); + $response = $client->request('GET', '/api/domains', [ + 'query' => ['registrant' => 'AFNIC'], + ]); + $this->assertResponseIsSuccessful(); + $this->assertMatchesResourceCollectionJsonSchema(Domain::class); + + $data = $response->toArray(); + $this->assertArrayHasKey('hydra:member', $data); + $this->assertCount(1, $data['hydra:member']); + } +}