tests/Controller/SetPasswordControllerTest.php (nouveau, 5 tests): - testGetFormRendered: token valide, affiche le formulaire - testTokenExpired: token invalide, affiche la page expired - testPostPasswordTooShort: mot de passe < 8 caracteres, erreur - testPostPasswordMismatch: confirmation differente, erreur - testPostSuccess: mot de passe valide, flush + redirect 302 tests/Controller/SonarBadgeControllerTest.php (nouveau, 2 tests): - testBadgeSuccess: metric valide, retourne SVG avec Content-Type image/svg+xml - testBadgeInvalidMetric: metric invalide, retourne 404 tests/Controller/StatusPageControllerTest.php (reecrit, 2 tests): - testIndexEmpty: aucune categorie, retourne 200 - testIndexWithServices: categorie avec service, QueryBuilder mocke pour les logs, retourne 200 tests/Controller/WebhookDocuSealControllerTest.php (nouveau, 9 tests): - testUnauthorized: mauvais secret dans le header, retourne 401 - testInvalidPayload: JSON invalide, retourne 400 - testIgnoredDocType: doc_type autre que attestation, retourne ignored - testEmptySecret: secret vide bypass la verification - testFormViewedAttestationNotFound: attestation introuvable, retourne 404 - testFormViewedAttestationFound: attestation trouvee, retourne 200 - testFormStarted: evenement started, retourne 200 - testFormDeclined: evenement declined, retourne 200 - testUnknownEvent: evenement inconnu, retourne ignored Resultat: 368 tests, 718 assertions, 0 failures, 0 notices Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
39 lines
1.4 KiB
PHP
39 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Tests\Controller;
|
|
|
|
use App\Controller\SonarBadgeController;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Symfony\Contracts\HttpClient\HttpClientInterface;
|
|
use Symfony\Contracts\HttpClient\ResponseInterface;
|
|
|
|
class SonarBadgeControllerTest extends TestCase
|
|
{
|
|
public function testBadgeSuccess(): void
|
|
{
|
|
$httpResponse = $this->createStub(ResponseInterface::class);
|
|
$httpResponse->method('getContent')->willReturn('<svg>badge</svg>');
|
|
|
|
$httpClient = $this->createStub(HttpClientInterface::class);
|
|
$httpClient->method('request')->willReturn($httpResponse);
|
|
|
|
$controller = new SonarBadgeController();
|
|
$response = $controller->badge('coverage', $httpClient, 'https://sonar.test', 'project', 'token');
|
|
|
|
$this->assertSame(200, $response->getStatusCode());
|
|
$this->assertSame('image/svg+xml', $response->headers->get('Content-Type'));
|
|
$this->assertSame('<svg>badge</svg>', $response->getContent());
|
|
}
|
|
|
|
public function testBadgeInvalidMetric(): void
|
|
{
|
|
$httpClient = $this->createStub(HttpClientInterface::class);
|
|
|
|
$controller = new SonarBadgeController();
|
|
$response = $controller->badge('invalid_metric', $httpClient, 'https://sonar.test', 'project', 'token');
|
|
|
|
$this->assertSame(404, $response->getStatusCode());
|
|
}
|
|
}
|