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