| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 | 
							- <?php
 
- namespace GuzzleHttp\Tests\Command\Guzzle;
 
- use GuzzleHttp\Command\Guzzle\Description;
 
- use GuzzleHttp\Command\Guzzle\Operation;
 
- use GuzzleHttp\Command\Guzzle\Parameter;
 
- use GuzzleHttp\Command\Guzzle\SchemaFormatter;
 
- /**
 
-  * @covers \GuzzleHttp\Command\Guzzle\Description
 
-  */
 
- class DescriptionTest extends \PHPUnit_Framework_TestCase
 
- {
 
-     protected $operations;
 
-     public function setup()
 
-     {
 
-         $this->operations = [
 
-             'test_command' => [
 
-                 'name'        => 'test_command',
 
-                 'description' => 'documentationForCommand',
 
-                 'httpMethod'  => 'DELETE',
 
-                 'class'       => 'FooModel',
 
-                 'parameters'  => [
 
-                     'bucket'  => ['required' => true],
 
-                     'key'     => ['required' => true]
 
-                 ]
 
-             ]
 
-         ];
 
-     }
 
-     public function testConstructor()
 
-     {
 
-         $service = new Description(['operations' => $this->operations]);
 
-         $this->assertEquals(1, count($service->getOperations()));
 
-         $this->assertFalse($service->hasOperation('foobar'));
 
-         $this->assertTrue($service->hasOperation('test_command'));
 
-     }
 
-     public function testContainsModels()
 
-     {
 
-         $d = new Description([
 
-             'operations' => ['foo' => []],
 
-             'models' => [
 
-                 'Tag'    => ['type' => 'object'],
 
-                 'Person' => ['type' => 'object']
 
-             ]
 
-         ]);
 
-         $this->assertTrue($d->hasModel('Tag'));
 
-         $this->assertTrue($d->hasModel('Person'));
 
-         $this->assertFalse($d->hasModel('Foo'));
 
-         $this->assertInstanceOf(Parameter::class, $d->getModel('Tag'));
 
-         $this->assertEquals(['Tag', 'Person'], array_keys($d->getModels()));
 
-     }
 
-     public function testCanUseResponseClass()
 
-     {
 
-         $d = new Description([
 
-             'operations' => [
 
-                 'foo' => ['responseClass' => 'Tag']
 
-             ],
 
-             'models' => ['Tag' => ['type' => 'object']]
 
-         ]);
 
-         $op = $d->getOperation('foo');
 
-         $this->assertNotNull($op->getResponseModel());
 
-     }
 
-     /**
 
-      * @expectedException \InvalidArgumentException
 
-      */
 
-     public function testRetrievingMissingModelThrowsException()
 
-     {
 
-         $d = new Description([]);
 
-         $d->getModel('foo');
 
-     }
 
-     public function testHasAttributes()
 
-     {
 
-         $d = new Description([
 
-             'operations'  => [],
 
-             'name'        => 'Name',
 
-             'description' => 'Description',
 
-             'apiVersion'  => '1.24'
 
-         ]);
 
-         $this->assertEquals('Name', $d->getName());
 
-         $this->assertEquals('Description', $d->getDescription());
 
-         $this->assertEquals('1.24', $d->getApiVersion());
 
-     }
 
-     public function testPersistsCustomAttributes()
 
-     {
 
-         $data = [
 
-             'operations'  => ['foo' => ['class' => 'foo', 'parameters' => []]],
 
-             'name'        => 'Name',
 
-             'description' => 'Test',
 
-             'apiVersion'  => '1.24',
 
-             'auth'        => 'foo',
 
-             'keyParam'    => 'bar'
 
-         ];
 
-         $d = new Description($data);
 
-         $this->assertEquals('foo', $d->getData('auth'));
 
-         $this->assertEquals('bar', $d->getData('keyParam'));
 
-         $this->assertEquals(['auth' => 'foo', 'keyParam' => 'bar'], $d->getData());
 
-         $this->assertNull($d->getData('missing'));
 
-     }
 
-     /**
 
-      * @expectedException \InvalidArgumentException
 
-      */
 
-     public function testThrowsExceptionForMissingOperation()
 
-     {
 
-         $s = new Description([]);
 
-         $this->assertNull($s->getOperation('foo'));
 
-     }
 
-     /**
 
-      * @expectedException \InvalidArgumentException
 
-      */
 
-     public function testValidatesOperationTypes()
 
-     {
 
-         new Description([
 
-             'operations' => ['foo' => new \stdClass()]
 
-         ]);
 
-     }
 
-     public function testHasbaseUrl()
 
-     {
 
-         $description = new Description(['baseUrl' => 'http://foo.com']);
 
-         $this->assertEquals('http://foo.com', $description->getBaseUri());
 
-     }
 
-     public function testHasbaseUri()
 
-     {
 
-         $description = new Description(['baseUri' => 'http://foo.com']);
 
-         $this->assertEquals('http://foo.com', $description->getBaseUri());
 
-     }
 
-     public function testModelsHaveNames()
 
-     {
 
-         $desc = [
 
-             'models' => [
 
-                 'date' => ['type' => 'string'],
 
-                 'user'=> [
 
-                     'type' => 'object',
 
-                     'properties' => [
 
-                         'dob' => ['$ref' => 'date']
 
-                     ]
 
-                 ]
 
-             ]
 
-         ];
 
-         $s = new Description($desc);
 
-         $this->assertEquals('string', $s->getModel('date')->getType());
 
-         $this->assertEquals('dob', $s->getModel('user')->getProperty('dob')->getName());
 
-     }
 
-     public function testHasOperations()
 
-     {
 
-         $desc = ['operations' => ['foo' => ['parameters' => ['foo' => [
 
-             'name' => 'foo'
 
-         ]]]]];
 
-         $s = new Description($desc);
 
-         $this->assertInstanceOf(Operation::class, $s->getOperation('foo'));
 
-         $this->assertSame($s->getOperation('foo'), $s->getOperation('foo'));
 
-     }
 
-     public function testHasFormatter()
 
-     {
 
-         $s = new Description([]);
 
-         $this->assertNotEmpty($s->format('date', 'now'));
 
-     }
 
-     public function testCanUseCustomFormatter()
 
-     {
 
-         $formatter = $this->getMockBuilder(SchemaFormatter::class)
 
-             ->setMethods(['format'])
 
-             ->getMock();
 
-         $formatter->expects($this->once())
 
-             ->method('format');
 
-         $s = new Description([], ['formatter' => $formatter]);
 
-         $s->format('time', 'now');
 
-     }
 
- }
 
 
  |