request('GET', '/'); $this->assertResponseIsSuccessful(); $this->assertSelectorExists('form'); } public function testImageIsPresentAfterSubmitForm(): void { $client = $this->generateClientForSubmitTest(); $response = $client->request('GET', '/'); $this->assertResponseIsSuccessful(); $form = $response->selectButton('Vygenerovat QR kód')->form(); $dt = new \DateTime('now+1 hour'); // In case of 23:59:59 $client->submit($form, [ 'qr_code' => [ 'iban' => 'CZ5508000000001234567899', 'dueDate' => $dt->format('Y-m-d'), 'message' => 'foo', 'money' => [ 'currency' => 'CZK', 'amount' => '100' ], 'paymentIdentification' => [ 'variableSymbol' => '123', 'constantSymbol' => '123', 'specificSymbol' => '123' ] ] ]); $this->assertResponseIsSuccessful(); $this->assertSelectorExists('form'); $this->assertSelectorExists('img'); } public function testImageIsNotPresentAfterFailSubmitForm(): void { $client = $this->generateClientForSubmitTest(); $response = $client->request('GET', '/'); $this->assertResponseIsSuccessful(); $form = $response->selectButton('Vygenerovat QR kód')->form(); $dt = new \DateTime('now+1 hour'); // In case of 23:59:59 $client->submit($form, [ 'qr_code' => [ 'iban' => 'IBAN_THAT_NOT_EXISTS', 'dueDate' => $dt->format('Y-m-d'), 'message' => 'foo', 'money' => [ 'currency' => 'CZK', 'amount' => '100' ], 'paymentIdentification' => [ 'variableSymbol' => '123', 'constantSymbol' => '123', 'specificSymbol' => '123' ] ] ]); $this->assertResponseIsUnprocessable(); $this->assertSelectorExists('form'); $this->assertSelectorNotExists('img'); } private function generateClientForSubmitTest(): KernelBrowser { $mock = $this->createMock(QRCodeProviderInterface::class); $mock->expects($this->any()) ->method('generateQRCodeFromEntity') ->will($this->returnValue('foo')); $client = static::createClient(); $client->disableReboot(); self::getContainer()->set('App\Service\QRCodeProviderInterface', $mock); return $client; } }