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);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |