createMock(Security::class); $security->expects($this->any())->method('getUser')->willReturn(new User()); $security->expects($this->any())->method('isGranted')->willReturn(true); $translator = $this->createMock(TranslatorInterface::class); $translator->method('trans')->willReturnArgument(0); $dispatcher = new EventDispatcher(); $dispatcher->addSubscriber(new MetaFieldColumnSubscriberMock()); return new XlsxRenderer(new SpreadsheetRenderer($dispatcher, $security), $translator); } public function testConfiguration(): void { $sut = $this->getAbstractRenderer(); $sut->setLocale('de'); self::assertEquals('xlsx', $sut->getId()); self::assertEquals('default', $sut->getTitle()); $sut->setTitle('foo-bar'); self::assertEquals('foo-bar', $sut->getTitle()); $sut->setId('bar-id'); self::assertEquals('bar-id', $sut->getId()); } public function testRender(): void { $sut = $this->getAbstractRenderer(); /** @var BinaryFileResponse $response */ $response = $this->render($sut); $file = $response->getFile(); $prefix = date('Ymd'); self::assertEquals('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', $response->headers->get('Content-Type')); self::assertEquals('attachment; filename=' . $prefix . '-Customer_Name-project_name.xlsx', $response->headers->get('Content-Disposition')); self::assertTrue(file_exists($file->getRealPath())); ob_start(); $response->sendContent(); $content2 = ob_get_clean(); self::assertNotEmpty($content2); self::assertFalse(file_exists($file->getRealPath())); } }