createMock(Environment::class); $converter = $this->createMock(HtmlToPdfConverter::class); $projectStatisticService = $this->createMock(ProjectStatisticService::class); return new PDFRenderer( $twig, $converter, $projectStatisticService, 'foo', 'bar', 'export/print.html.twig' ); } public function testConfiguration(): void { $sut = $this->getAbstractRenderer(); self::assertEquals('foo', $sut->getId()); self::assertEquals('bar', $sut->getTitle()); self::assertEquals([], $sut->getPdfOptions()); $sut->setPdfOption('foo', 'bar'); self::assertEquals(['foo' => 'bar'], $sut->getPdfOptions()); $sut->setPdfOption('foo', 'bar2'); self::assertEquals(['foo' => 'bar2'], $sut->getPdfOptions()); $sut->setPdfOption('hello', 'world'); self::assertEquals(['foo' => 'bar2', 'hello' => 'world'], $sut->getPdfOptions()); self::assertFalse($sut->isInternal()); } /** * @group legacy */ public function testLegacy(): void { $sut = $this->getAbstractRenderer(); $sut->setTemplate('some'); // @phpstan-ignore method.deprecated $sut->setTitle('xxxxxx'); // @phpstan-ignore method.deprecated self::assertEquals('xxxxxx', $sut->getTitle()); } public function testRender(): void { $sut = $this->getAbstractRenderer(); $response = $this->render($sut); self::assertInstanceOf(Response::class, $response); $prefix = date('Ymd'); self::assertEquals('application/pdf', $response->headers->get('Content-Type')); self::assertEquals('attachment; filename=' . $prefix . '-Customer_Name-project_name.pdf', $response->headers->get('Content-Disposition')); $content = $response->getContent(); self::assertIsString($content); } }