Edit file File name : InvoiceDocumentRepositoryTest.php Content :<?php /* * This file is part of the Kimai time-tracking app. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace App\Tests\Repository; use App\Entity\InvoiceDocument; use App\Repository\InvoiceDocumentRepository; use PHPUnit\Framework\TestCase; /** * @covers \App\Repository\InvoiceDocumentRepository */ class InvoiceDocumentRepositoryTest extends TestCase { protected static $defaultDirectories = [ 'templates/invoice/renderer' ]; protected static $testDocuments = [ 'spreadsheet.xsls', 'open-spreadsheet.ods', 'default.pdf.twig', ]; protected static $defaultDocuments = [ 'company.docx', 'default.html.twig', 'default-pdf.pdf.twig', 'freelancer.pdf.twig', 'timesheet.html.twig', 'text.txt.twig', 'javascript.json.twig', 'xml.xml.twig', ]; public function testDirectories() { $sut = new InvoiceDocumentRepository([]); self::assertEmpty($sut->findAll()); self::assertIsArray($sut->findAll()); self::assertNull($sut->findByName('default')); try { $sut->getUploadDirectory(); $this->fail('Expected exception was not raised'); } catch (\Exception $ex) { $this->assertEquals('Unknown upload directory', $ex->getMessage()); } $path = realpath(__DIR__ . '/../Invoice/templates/'); $sut->addDirectory($path); $sut->addDirectory(InvoiceDocumentRepository::DEFAULT_DIRECTORY); $sut->addDirectory(__DIR__); self::assertEquals(__DIR__, $sut->getUploadDirectory()); $sut->removeDirectory(__DIR__); self::assertCount(\count(self::$defaultDocuments), $sut->findBuiltIn()); self::assertCount(\count(self::$testDocuments), $sut->findCustom()); // template "default" exists twice, so its 10 instead of 11 $all = []; foreach (self::$defaultDocuments as $document) { $all[] = substr($document, 0, strpos($document, '.')); } foreach (self::$testDocuments as $document) { $all[] = substr($document, 0, strpos($document, '.')); } $all = array_unique(array_values($all)); self::assertCount(\count($all), $sut->findAll()); self::assertEquals($path, $sut->getUploadDirectory()); } public function testDefaultTemplatesExists() { $sut = new InvoiceDocumentRepository(self::$defaultDirectories); $all = $sut->findAll(); $this->assertCount(\count(self::$defaultDocuments), $all); foreach ($all as $document) { $this->assertTrue(\in_array($document->getName(), self::$defaultDocuments)); } foreach (self::$defaultDocuments as $filename) { $filename = substr($filename, 0, strpos($filename, '.')); $actual = $sut->findByName($filename); $this->assertNotNull($actual); $this->assertInstanceOf(InvoiceDocument::class, $actual); } } } Save