support different formats in user timesheet exports (#1222)

This commit is contained in:
Kevin Papst
2019-11-08 16:10:38 +01:00
committed by GitHub
parent 0705c26513
commit fa1c79e15c
75 changed files with 1872 additions and 951 deletions

View File

@@ -11,6 +11,7 @@ namespace App\Tests\Export;
use App\Export\Renderer\HtmlRenderer;
use App\Export\ServiceExport;
use App\Export\Timesheet\HtmlRenderer as HtmlExporter;
use PHPUnit\Framework\TestCase;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Twig\Environment;
@@ -22,36 +23,34 @@ class ServiceExportTest extends TestCase
{
public function testEmptyObject()
{
$sut = new ServiceExport([]);
$this->assertEmpty($sut->getRenderer());
$sut = new ServiceExport();
self::assertEmpty($sut->getRenderer());
self::assertNull($sut->getRendererById('default'));
self::assertEmpty($sut->getTimesheetExporter());
self::assertNull($sut->getTimesheetExporterById('default'));
}
public function testUnknownRendererReturnsNull()
public function testAddRenderer()
{
$sut = new ServiceExport([]);
$this->assertNull($sut->getRendererById('default'));
$sut = new ServiceExport();
$renderer = new HtmlRenderer($this->createMock(Environment::class), new EventDispatcher());
$sut->addRenderer($renderer);
self::assertEquals(1, count($sut->getRenderer()));
self::assertSame($renderer, $sut->getRendererById('html'));
}
public function testAdd()
public function testAddTimesheetExporter()
{
$sut = new ServiceExport([]);
$sut = new ServiceExport();
$sut->addRenderer(new HtmlRenderer(
$this->getMockBuilder(Environment::class)->disableOriginalConstructor()->getMock(),
new EventDispatcher()
));
$exporter = new HtmlExporter($this->createMock(Environment::class), new EventDispatcher());
$sut->addTimesheetExporter($exporter);
$this->assertEquals(1, count($sut->getRenderer()));
}
public function testAddViaConstruct()
{
$renderer = [new HtmlRenderer(
$this->getMockBuilder(Environment::class)->disableOriginalConstructor()->getMock(),
new EventDispatcher()
)];
$sut = new ServiceExport($renderer);
$this->assertEquals(1, count($sut->getRenderer()));
self::assertEquals(1, count($sut->getTimesheetExporter()));
self::assertSame($exporter, $sut->getTimesheetExporterById('print'));
}
}