sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							76 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							76 lines
						
					
					
						
							2.4 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								 * This file is part of the Symfony package.
							 | 
						|
								 *
							 | 
						|
								 * (c) Fabien Potencier <fabien@symfony.com>
							 | 
						|
								 *
							 | 
						|
								 * For the full copyright and license information, please view the LICENSE
							 | 
						|
								 * file that was distributed with this source code.
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								namespace Symfony\Component\HttpKernel\Tests\Controller\ArgumentResolver;
							 | 
						|
								
							 | 
						|
								use PHPUnit\Framework\TestCase;
							 | 
						|
								use Symfony\Component\HttpFoundation\Request;
							 | 
						|
								use Symfony\Component\HttpKernel\Controller\ArgumentResolver\TraceableValueResolver;
							 | 
						|
								use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface;
							 | 
						|
								use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
							 | 
						|
								use Symfony\Component\Stopwatch\Stopwatch;
							 | 
						|
								
							 | 
						|
								class TraceableValueResolverTest extends TestCase
							 | 
						|
								{
							 | 
						|
								    public function testTimingsInSupports()
							 | 
						|
								    {
							 | 
						|
								        $stopwatch = new Stopwatch();
							 | 
						|
								        $resolver = new TraceableValueResolver(new ResolverStub(), $stopwatch);
							 | 
						|
								        $argument = new ArgumentMetadata('dummy', 'string', false, false, null);
							 | 
						|
								        $request = new Request();
							 | 
						|
								
							 | 
						|
								        $this->assertTrue($resolver->supports($request, $argument));
							 | 
						|
								
							 | 
						|
								        $event = $stopwatch->getEvent(ResolverStub::class.'::supports');
							 | 
						|
								        $this->assertCount(1, $event->getPeriods());
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function testTimingsInResolve()
							 | 
						|
								    {
							 | 
						|
								        $stopwatch = new Stopwatch();
							 | 
						|
								        $resolver = new TraceableValueResolver(new ResolverStub(), $stopwatch);
							 | 
						|
								        $argument = new ArgumentMetadata('dummy', 'string', false, false, null);
							 | 
						|
								        $request = new Request();
							 | 
						|
								
							 | 
						|
								        $iterable = $resolver->resolve($request, $argument);
							 | 
						|
								
							 | 
						|
								        foreach ($iterable as $index => $resolved) {
							 | 
						|
								            $event = $stopwatch->getEvent(ResolverStub::class.'::resolve');
							 | 
						|
								            $this->assertTrue($event->isStarted());
							 | 
						|
								            $this->assertEmpty($event->getPeriods());
							 | 
						|
								            switch ($index) {
							 | 
						|
								                case 0:
							 | 
						|
								                    $this->assertEquals('first', $resolved);
							 | 
						|
								                    break;
							 | 
						|
								                case 1:
							 | 
						|
								                    $this->assertEquals('second', $resolved);
							 | 
						|
								                    break;
							 | 
						|
								            }
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        $event = $stopwatch->getEvent(ResolverStub::class.'::resolve');
							 | 
						|
								        $this->assertCount(1, $event->getPeriods());
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								class ResolverStub implements ArgumentValueResolverInterface
							 | 
						|
								{
							 | 
						|
								    public function supports(Request $request, ArgumentMetadata $argument)
							 | 
						|
								    {
							 | 
						|
								        return true;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    public function resolve(Request $request, ArgumentMetadata $argument)
							 | 
						|
								    {
							 | 
						|
								        yield 'first';
							 | 
						|
								        yield 'second';
							 | 
						|
								    }
							 | 
						|
								}
							 | 
						|
								
							 |