createAdminClient(); $seed = $this->seedProvider('Virement No Bank'); $response = $client->request('PATCH', '/api/providers/'.$seed->getId(), [ 'headers' => ['Content-Type' => self::MERGE, 'Accept' => self::LD], 'json' => ['paymentType' => '/api/payment_types/'.$this->paymentType('VIREMENT')->getId()], ]); self::assertResponseStatusCodeSame(422); self::assertArrayHasKey('bank', $this->violationsByPath($response->toArray(false))); } public function testVirementWithBankReturns200(): void { $client = $this->createAdminClient(); $seed = $this->seedProvider('Virement With Bank'); $client->request('PATCH', '/api/providers/'.$seed->getId(), [ 'headers' => ['Content-Type' => self::MERGE], 'json' => [ 'paymentType' => '/api/payment_types/'.$this->paymentType('VIREMENT')->getId(), 'bank' => '/api/banks/'.$this->bank('SG')->getId(), ], ]); self::assertResponseStatusCodeSame(200); } // === RG-3.08 : LCR impose au moins un RIB (volet ecriture du formulaire) === public function testLcrWithoutRibReturns422OnPaymentTypePath(): void { $client = $this->createAdminClient(); $seed = $this->seedProvider('Lcr No Rib'); $response = $client->request('PATCH', '/api/providers/'.$seed->getId(), [ 'headers' => ['Content-Type' => self::MERGE, 'Accept' => self::LD], 'json' => ['paymentType' => '/api/payment_types/'.$this->paymentType('LCR')->getId()], ]); self::assertResponseStatusCodeSame(422); // Miroir client : violation portee sur `paymentType` (select « Type de // règlement »), les RIB n'ayant pas de champ de formulaire pour l'ancrer. self::assertArrayHasKey('paymentType', $this->violationsByPath($response->toArray(false))); } public function testLcrWithRibReturns200(): void { $client = $this->createAdminClient(); $seed = $this->seedProvider('Lcr With Rib'); $this->addRib($seed); $client->request('PATCH', '/api/providers/'.$seed->getId(), [ 'headers' => ['Content-Type' => self::MERGE], 'json' => ['paymentType' => '/api/payment_types/'.$this->paymentType('LCR')->getId()], ]); self::assertResponseStatusCodeSame(200); } // violationsByPath() : helper mutualise dans AbstractProviderApiTestCase. }