. */ namespace App\Tests\Services\Parts; use App\Entity\Parts\Part; use App\Services\Parts\PartsTableActionHandler; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; use Symfony\Component\HttpFoundation\RedirectResponse; class PartsTableActionHandlerTest extends WebTestCase { private PartsTableActionHandler $service; protected function setUp(): void { self::bootKernel(); $this->service = self::getContainer()->get(PartsTableActionHandler::class); } public function testExportActionsRedirectToExportController(): void { // Mock a Part entity with required properties $part = $this->createMock(Part::class); $part->method('getId')->willReturn(1); $part->method('getName')->willReturn('Test Part'); $selected_parts = [$part]; // Test each export format, focusing on our new xlsx format $formats = ['json', 'csv', 'xml', 'yaml', 'xlsx']; foreach ($formats as $format) { $action = "export_{$format}"; $result = $this->service->handleAction($action, $selected_parts, 1, '/test'); $this->assertInstanceOf(RedirectResponse::class, $result); $this->assertStringContainsString('parts/export', $result->getTargetUrl()); $this->assertStringContainsString("format={$format}", $result->getTargetUrl()); } } }