/**
  * @covers Guzzle\Service\Command\AbstractCommand::setClient
  * @covers Guzzle\Service\Command\AbstractCommand::getClient
  * @covers Guzzle\Service\Command\AbstractCommand::prepare
  * @covers Guzzle\Service\Command\AbstractCommand::isPrepared
  */
 public function testSetClient()
 {
     $command = new MockCommand();
     $client = $this->getClient();
     $command->setClient($client);
     $this->assertEquals($client, $command->getClient());
     unset($client);
     unset($command);
     $command = new MockCommand();
     $client = $this->getClient();
     $command->setClient($client)->prepare();
     $this->assertEquals($client, $command->getClient());
     $this->assertTrue($command->isPrepared());
 }
Beispiel #2
0
 public function testCloneMakesNewRequest()
 {
     $client = $this->getClient();
     $command = new MockCommand(array(), $this->getOperation());
     $command->setClient($client);
     $command->prepare();
     $this->assertTrue($command->isPrepared());
     $command2 = clone $command;
     $this->assertFalse($command2->isPrepared());
 }
Beispiel #3
0
 /**
  * @covers Guzzle\Service\Command\AbstractCommand::__clone
  */
 public function testCloneMakesNewRequest()
 {
     $client = $this->getClient();
     $command = new MockCommand(array('command.magic_method_call' => true), $this->getApiCommand());
     $command->setClient($client);
     $command->prepare();
     $this->assertTrue($command->isPrepared());
     $command2 = clone $command;
     $this->assertFalse($command2->isPrepared());
 }
 /**
  * @covers Guzzle\Service\Command\CommandSet::execute
  * @covers Guzzle\Service\Command\CommandSet::update
  */
 public function testExecutesCommands()
 {
     $client = $this->getClient();
     $observer = $this->getWildcardObserver($client);
     // Create a Mock response
     $response = new Response(200, array('Content-Type' => 'application/xml'), '<xml><data>123</data></xml>');
     $client->getEventDispatcher()->addSubscriber(new MockPlugin(array($response, $response, $response)));
     $command1 = new MockCommand();
     $command1->setClient($client);
     $command2 = new MockCommand();
     $command2->setClient($client);
     $command3 = new MockCommand();
     $command3->setClient($client);
     $commandSet = new CommandSet(array($command1, $command2, $command3));
     $commandSet->execute();
     $this->assertTrue($command1->isExecuted());
     $this->assertTrue($command1->isPrepared());
     $this->assertTrue($command2->isExecuted());
     $this->assertTrue($command2->isPrepared());
     $this->assertTrue($command3->isExecuted());
     $this->assertTrue($command3->isPrepared());
     $this->assertEquals($response, $command1->getResponse());
     $this->assertEquals($response, $command2->getResponse());
     $grouped = $observer->getGrouped();
     $this->assertEquals(3, count($grouped['command.before_send']));
     $this->assertEquals(3, count($grouped['command.after_send']));
     // make sure the command set was detached as a listener on the request
     $listeners = $command1->getRequest()->getEventDispatcher()->getListeners('request.complete');
     $this->assertFalse(in_array($commandSet, $listeners));
     // make sure that the command reference was removed
     $this->assertFalse($command1->getRequest()->getParams()->hasKey('command'));
     // Make sure that the command.after_send events are staggered, meaning they happened as requests completed
     $lastEvent = '';
     foreach ($observer->events as $e) {
         if ($lastEvent == 'command.after_send' && $e == 'command.after_send') {
             $this->fail('Not completing commands as they complete: ' . var_export($observer->events, true));
         }
         $lastEvent = $e;
     }
 }