nginxsonarrradarrplexorganizrdashboardbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbget
		
		
		
		
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							95 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							95 lines
						
					
					
						
							2.8 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\VarDumper\Tests\Dumper; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\Process\PhpProcess; | |
| use Symfony\Component\Process\Process; | |
| use Symfony\Component\VarDumper\Cloner\VarCloner; | |
| use Symfony\Component\VarDumper\Dumper\ContextProvider\ContextProviderInterface; | |
| use Symfony\Component\VarDumper\Dumper\DataDumperInterface; | |
| use Symfony\Component\VarDumper\Dumper\ServerDumper; | |
| 
 | |
| class ServerDumperTest extends TestCase | |
| { | |
|     private const VAR_DUMPER_SERVER = 'tcp://127.0.0.1:9913'; | |
| 
 | |
|     public function testDumpForwardsToWrappedDumperWhenServerIsUnavailable() | |
|     { | |
|         $wrappedDumper = $this->getMockBuilder(DataDumperInterface::class)->getMock(); | |
| 
 | |
|         $dumper = new ServerDumper(self::VAR_DUMPER_SERVER, $wrappedDumper); | |
| 
 | |
|         $cloner = new VarCloner(); | |
|         $data = $cloner->cloneVar('foo'); | |
| 
 | |
|         $wrappedDumper->expects($this->once())->method('dump')->with($data); | |
| 
 | |
|         $dumper->dump($data); | |
|     } | |
| 
 | |
|     public function testDump() | |
|     { | |
|         $wrappedDumper = $this->getMockBuilder(DataDumperInterface::class)->getMock(); | |
|         $wrappedDumper->expects($this->never())->method('dump'); // test wrapped dumper is not used | |
|  | |
|         $cloner = new VarCloner(); | |
|         $data = $cloner->cloneVar('foo'); | |
|         $dumper = new ServerDumper(self::VAR_DUMPER_SERVER, $wrappedDumper, [ | |
|             'foo_provider' => new class() implements ContextProviderInterface { | |
|                 public function getContext(): ?array | |
|                 { | |
|                     return ['foo']; | |
|                 } | |
|             }, | |
|         ]); | |
| 
 | |
|         $dumped = null; | |
|         $process = $this->getServerProcess(); | |
|         $process->start(function ($type, $buffer) use ($process, &$dumped, $dumper, $data) { | |
|             if (Process::ERR === $type) { | |
|                 $process->stop(); | |
|                 $this->fail(); | |
|             } elseif ("READY\n" === $buffer) { | |
|                 $dumper->dump($data); | |
|             } else { | |
|                 $dumped .= $buffer; | |
|             } | |
|         }); | |
| 
 | |
|         $process->wait(); | |
| 
 | |
|         $this->assertTrue($process->isSuccessful()); | |
|         $this->assertStringMatchesFormat(<<<'DUMP' | |
| (3) "foo" | |
| [ | |
|   "timestamp" => %d.%d | |
|   "foo_provider" => [ | |
|     (3) "foo" | |
|   ] | |
| ] | |
| %d | |
| DUMP | |
|         , $dumped); | |
|     } | |
| 
 | |
|     private function getServerProcess(): Process | |
|     { | |
|         $process = new PhpProcess(file_get_contents(__DIR__.'/../Fixtures/dump_server.php'), null, [ | |
|             'COMPONENT_ROOT' => __DIR__.'/../../', | |
|             'VAR_DUMPER_SERVER' => self::VAR_DUMPER_SERVER, | |
|         ]); | |
|         $process->inheritEnvironmentVariables(true); | |
| 
 | |
|         return $process->setTimeout(9); | |
|     } | |
| }
 | |
| 
 |