setParameter('kimai.export.documents', [ 'templates/export/renderer/', ]); $definition = new Definition(ServiceExport::class); $container->setDefinition(ServiceExport::class, $definition); $renderers = [CsvRenderer::class, HtmlRenderer::class]; foreach ($renderers as $renderer) { $container->register($renderer)->addTag(RendererInterface::class); } $exporters = [PDFRenderer::class, XlsxRenderer::class]; foreach ($exporters as $exporter) { $container->register($exporter)->addTag(TimesheetExportInterface::class); } $repositories = [TimesheetExportRepository::class]; foreach ($repositories as $repository) { $container->register($repository)->addTag(ExportRepositoryInterface::class); } return $container; } public function testCallsAreAdded(): void { $container = $this->getContainer(); $sut = new ExportServiceCompilerPass(); $sut->process($container); $definition = $container->findDefinition(ServiceExport::class); $methods = $definition->getMethodCalls(); self::assertCount(6, $methods); self::assertTrue($definition->hasMethodCall('addDirectory')); self::assertTrue($definition->hasMethodCall('addRenderer')); self::assertTrue($definition->hasMethodCall('addTimesheetExporter')); self::assertTrue($definition->hasMethodCall('addExportRepository')); } }