sonarrradarrplexorganizrnginxdashboardlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximux
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							78 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							78 lines
						
					
					
						
							2.8 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace Symfony\Component\HttpKernel\Tests\DependencyInjection; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\DependencyInjection\Argument\IteratorArgument; | |
| use Symfony\Component\DependencyInjection\ContainerBuilder; | |
| use Symfony\Component\DependencyInjection\ContainerInterface; | |
| use Symfony\Component\DependencyInjection\Reference; | |
| use Symfony\Component\HttpKernel\DependencyInjection\ResettableServicePass; | |
| use Symfony\Component\HttpKernel\DependencyInjection\ServicesResetter; | |
| use Symfony\Component\HttpKernel\Tests\Fixtures\ClearableService; | |
| use Symfony\Component\HttpKernel\Tests\Fixtures\ResettableService; | |
| 
 | |
| class ResettableServicePassTest extends TestCase | |
| { | |
|     public function testCompilerPass() | |
|     { | |
|         $container = new ContainerBuilder(); | |
|         $container->register('one', ResettableService::class) | |
|             ->setPublic(true) | |
|             ->addTag('kernel.reset', ['method' => 'reset']); | |
|         $container->register('two', ClearableService::class) | |
|             ->setPublic(true) | |
|             ->addTag('kernel.reset', ['method' => 'clear']); | |
| 
 | |
|         $container->register('services_resetter', ServicesResetter::class) | |
|             ->setPublic(true) | |
|             ->setArguments([null, []]); | |
|         $container->addCompilerPass(new ResettableServicePass()); | |
| 
 | |
|         $container->compile(); | |
| 
 | |
|         $definition = $container->getDefinition('services_resetter'); | |
| 
 | |
|         $this->assertEquals( | |
|             [ | |
|                 new IteratorArgument([ | |
|                     'one' => new Reference('one', ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE), | |
|                     'two' => new Reference('two', ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE), | |
|                 ]), | |
|                 [ | |
|                     'one' => 'reset', | |
|                     'two' => 'clear', | |
|                 ], | |
|             ], | |
|             $definition->getArguments() | |
|         ); | |
|     } | |
| 
 | |
|     /** | |
|      * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException | |
|      * @expectedExceptionMessage Tag kernel.reset requires the "method" attribute to be set. | |
|      */ | |
|     public function testMissingMethod() | |
|     { | |
|         $container = new ContainerBuilder(); | |
|         $container->register(ResettableService::class) | |
|             ->addTag('kernel.reset'); | |
|         $container->register('services_resetter', ServicesResetter::class) | |
|             ->setArguments([null, []]); | |
|         $container->addCompilerPass(new ResettableServicePass()); | |
| 
 | |
|         $container->compile(); | |
|     } | |
| 
 | |
|     public function testCompilerPassWithoutResetters() | |
|     { | |
|         $container = new ContainerBuilder(); | |
|         $container->register('services_resetter', ServicesResetter::class) | |
|             ->setArguments([null, []]); | |
|         $container->addCompilerPass(new ResettableServicePass()); | |
| 
 | |
|         $container->compile(); | |
| 
 | |
|         $this->assertFalse($container->has('services_resetter')); | |
|     } | |
| }
 | |
| 
 |