createMock(EventDispatcherInterface::class)); return $sut; } public function testEmptyObject() { $sut = $this->createSut(); self::assertEmpty($sut->getRenderer()); self::assertNull($sut->getRendererById('default')); self::assertEmpty($sut->getTimesheetExporter()); self::assertNull($sut->getTimesheetExporterById('default')); } public function testAddRenderer() { $sut = $this->createSut(); $renderer = new HtmlRenderer( $this->createMock(Environment::class), new EventDispatcher(), $this->createMock(ProjectStatisticService::class), $this->createMock(ActivityStatisticService::class) ); $sut->addRenderer($renderer); self::assertEquals(1, \count($sut->getRenderer())); self::assertSame($renderer, $sut->getRendererById('html')); } public function testAddTimesheetExporter() { $sut = $this->createSut(); $exporter = new HtmlExporter($this->createMock(Environment::class), new EventDispatcher(), $this->createMock(ProjectStatisticService::class), $this->createMock(ActivityStatisticService::class)); $sut->addTimesheetExporter($exporter); self::assertEquals(1, \count($sut->getTimesheetExporter())); self::assertSame($exporter, $sut->getTimesheetExporterById('print')); } public function testAddExportRepository() { $sut = $this->createSut(); $repository = $this->createMock(ExportRepositoryInterface::class); $repository->expects($this->once())->method('getExportItemsForQuery')->willReturn([]); $sut->addExportRepository($repository); $query = new ExportQuery(); $items = $sut->getExportItems($query); self::assertEquals([], $items); } }