mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-05 06:14:59 +00:00
Implement ExportGenerationController with waiting and status routes
Added a new controller to handle export generation wait views and status responses. Updated ExportController to redirect to the 'wait' route after export generation. Introduced tests to validate object status handling for pending and ready states.
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* Chill is a software for social workers
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Chill\MainBundle\Tests\Controller;
|
||||
|
||||
use Chill\DocStoreBundle\Entity\StoredObject;
|
||||
use Chill\MainBundle\Controller\ExportGenerationController;
|
||||
use Chill\MainBundle\Entity\ExportGeneration;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Prophecy\Argument;
|
||||
use Prophecy\PhpUnit\ProphecyTrait;
|
||||
use Symfony\Component\Security\Core\Security;
|
||||
use Symfony\Component\Serializer\SerializerInterface;
|
||||
use Twig\Environment;
|
||||
use function PHPUnit\Framework\assertEquals;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @coversNothing
|
||||
*/
|
||||
class ExportGenerationControllerTest extends TestCase
|
||||
{
|
||||
use ProphecyTrait;
|
||||
|
||||
public function testObjectStatus(): void
|
||||
{
|
||||
$security = $this->prophesize(Security::class);
|
||||
$security->isGranted('ROLE_USER')->willReturn(true);
|
||||
$environment = $this->prophesize(Environment::class);
|
||||
$serializer = $this->prophesize(SerializerInterface::class);
|
||||
$serializer->serialize(Argument::any(), 'json', ['groups' => ['read']])->willReturn('{}');
|
||||
|
||||
$pending = new ExportGeneration('dummy', []);
|
||||
|
||||
$controller = new ExportGenerationController($security->reveal(), $environment->reveal(), $serializer->reveal());
|
||||
|
||||
$actual = $controller->objectStatus($pending);
|
||||
self::assertEquals(json_encode(['status' => 'pending'], JSON_THROW_ON_ERROR), $actual->getContent());
|
||||
|
||||
$generated = new ExportGeneration('dummy', []);
|
||||
$generated->getStoredObject()->setStatus(StoredObject::STATUS_READY);
|
||||
|
||||
self:assertEquals('{}', $controller->objectStatus($generated)->getContent());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user