repository = new InMemoryEstablishmentRepository(); $this->handler = new GetEstablishmentsHandler($this->repository); } #[Test] public function returnsEmptyArrayWhenNoEstablishments(): void { $result = ($this->handler)(new GetEstablishmentsQuery()); self::assertSame([], $result); } #[Test] public function returnsAllEstablishments(): void { $this->repository->save(Establishment::creer( name: 'École Alpha', subdomain: 'ecole-alpha', adminEmail: 'admin@ecole-alpha.fr', createdBy: SuperAdminId::fromString(self::SUPER_ADMIN_ID), createdAt: new DateTimeImmutable('2026-02-16 10:00:00'), )); $this->repository->save(Establishment::creer( name: 'École Beta', subdomain: 'ecole-beta', adminEmail: 'admin@ecole-beta.fr', createdBy: SuperAdminId::fromString(self::SUPER_ADMIN_ID), createdAt: new DateTimeImmutable('2026-02-16 11:00:00'), )); $result = ($this->handler)(new GetEstablishmentsQuery()); self::assertCount(2, $result); self::assertSame('École Alpha', $result[0]->name); self::assertSame('ecole-alpha', $result[0]->subdomain); self::assertSame('provisioning', $result[0]->status); } }