61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | namespace GuzzleHttp\Tests\Command\Guzzle; | ||
|  | 
 | ||
|  | use GuzzleHttp\Command\Guzzle\SchemaFormatter; | ||
|  | 
 | ||
|  | /** | ||
|  |  * @covers \GuzzleHttp\Command\Guzzle\SchemaFormatter | ||
|  |  */ | ||
|  | class SchemaFormatterTest extends \PHPUnit_Framework_TestCase | ||
|  | { | ||
|  |     public function dateTimeProvider() | ||
|  |     { | ||
|  |         $dateUtc = 'October 13, 2012 16:15:46 UTC'; | ||
|  |         $dateOffset = 'October 13, 2012 10:15:46 -06:00'; | ||
|  |         $expectedDateTime = '2012-10-13T16:15:46Z'; | ||
|  | 
 | ||
|  |         return [ | ||
|  |             ['foo', 'does-not-exist', 'foo'], | ||
|  |             [$dateUtc, 'date-time', $expectedDateTime], | ||
|  |             [$dateUtc, 'date-time-http', 'Sat, 13 Oct 2012 16:15:46 GMT'], | ||
|  |             [$dateUtc, 'date', '2012-10-13'], | ||
|  |             [$dateUtc, 'timestamp', strtotime($dateUtc)], | ||
|  |             [new \DateTime($dateUtc), 'timestamp', strtotime($dateUtc)], | ||
|  |             [$dateUtc, 'time', '16:15:46'], | ||
|  |             [strtotime($dateUtc), 'time', '16:15:46'], | ||
|  |             [strtotime($dateUtc), 'timestamp', strtotime($dateUtc)], | ||
|  |             ['true', 'boolean-string', 'true'], | ||
|  |             [true, 'boolean-string', 'true'], | ||
|  |             ['false', 'boolean-string', 'false'], | ||
|  |             [false, 'boolean-string', 'false'], | ||
|  |             ['1350144946', 'date-time', $expectedDateTime], | ||
|  |             [1350144946, 'date-time', $expectedDateTime], | ||
|  |             [$dateOffset, 'date-time', $expectedDateTime], | ||
|  |         ]; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @dataProvider dateTimeProvider | ||
|  |      */ | ||
|  |     public function testFilters($value, $format, $result) | ||
|  |     { | ||
|  |         $this->assertEquals($result, (new SchemaFormatter)->format($format, $value)); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @expectedException \InvalidArgumentException | ||
|  |      */ | ||
|  |     public function testValidatesDateTimeInput() | ||
|  |     { | ||
|  |         (new SchemaFormatter)->format('date-time', false); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testEnsuresTimestampsAreIntegers() | ||
|  |     { | ||
|  |         $t = time(); | ||
|  |         $result = (new SchemaFormatter)->format('timestamp', $t); | ||
|  |         $this->assertSame($t, $result); | ||
|  |         $this->assertInternalType('int', $result); | ||
|  |     } | ||
|  | } |