for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Zenstruck\ScheduleBundle\Tests\DependencyInjection\Compiler;
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
use Zenstruck\ScheduleBundle\DependencyInjection\Compiler\ScheduleBuilderKernelPass;
use Zenstruck\ScheduleBundle\Schedule;
use Zenstruck\ScheduleBundle\Schedule\ScheduleBuilder;
/**
* @author Kevin Bond <[email protected]>
*/
final class ScheduleBuilderKernelPassTest extends AbstractCompilerPassTestCase
{
* @test
public function adds_tag_if_kernel_implement_interface()
$class = new class() implements ScheduleBuilder {
public function buildSchedule(Schedule $schedule): void
}
};
$this->setDefinition('kernel', new Definition(\get_class($class)));
$this->compile();
$this->assertContainerBuilderHasServiceDefinitionWithTag('kernel', 'schedule.builder');
public function does_not_add_tag_if_kernel_does_not_implement_interface()
$class = new class() {
$this->assertSame([], $this->container->getDefinition('kernel')->getTags());
public function does_not_add_tag_if_kernel_class_is_null()
$this->setDefinition('kernel', new Definition());
protected function registerCompilerPass(ContainerBuilder $container): void
$container->addCompilerPass(new ScheduleBuilderKernelPass());