43 lines
		
	
	
		
			1006 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1006 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								namespace JmesPath\Tests;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use JmesPath\fnDispatcher;
							 | 
						||
| 
								 | 
							
								use PHPUnit\Framework\TestCase;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class fnDispatcherTest extends TestCase
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function testConvertsToString()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $fn = new FnDispatcher();
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('foo', $fn('to_string', ['foo']));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('1', $fn('to_string', [1]));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('["foo"]', $fn('to_string', [['foo']]));
							 | 
						||
| 
								 | 
							
								        $std = new \stdClass();
							 | 
						||
| 
								 | 
							
								        $std->foo = 'bar';
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('{"foo":"bar"}', $fn('to_string', [$std]));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('foo', $fn('to_string', [new _TestStringClass()]));
							 | 
						||
| 
								 | 
							
								        $this->assertEquals('"foo"', $fn('to_string', [new _TestJsonStringClass()]));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class _TestStringClass
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function __toString()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return 'foo';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class _TestJsonStringClass implements \JsonSerializable
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function __toString()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return 'no!';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function jsonSerialize()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return 'foo';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |