Exemplo n.º 1
0
 public function testHasData()
 {
     $command = $this->getMock('GuzzleHttp\\Command\\CommandInterface');
     $client = $this->getMock('GuzzleHttp\\Command\\ServiceClientInterface');
     $trans = new CommandTransaction($client, $command);
     $event = new PrepareEvent($trans);
     $this->assertSame($trans, $event->getTransaction());
     $this->assertSame($command, $event->getCommand());
     $this->assertSame($client, $event->getClient());
     $this->assertNull($event->getResult());
 }
Exemplo n.º 2
0
 public function onPrepare(PrepareEvent $event)
 {
     // Don't modify the request if one is already present
     if ($event->getRequest()) {
         return;
     }
     /* @var GuzzleCommandInterface $command */
     $command = $event->getCommand();
     /* @var GuzzleClientInterface $client */
     $client = $event->getClient();
     $request = $this->createRequest($command, $client);
     $this->prepareRequest($command, $client, $request);
     $event->setRequest($request);
 }
Exemplo n.º 3
0
 public function onPrepare(PrepareEvent $event)
 {
     $command = $event->getCommand();
     if (!$command instanceof GuzzleCommandInterface) {
         throw new \RuntimeException('The command sent to ' . __METHOD__ . ' is not a GuzzleHttp\\Command\\Guzzle\\GuzzleCommandInterface');
     }
     $errors = array();
     $operation = $command->getOperation();
     foreach ($operation->getParams() as $name => $schema) {
         $value = $command[$name];
         if (!$this->validator->validate($schema, $value)) {
             $errors = array_merge($errors, $this->validator->getErrors());
         } elseif ($value !== $command[$name]) {
             // Update the config value if it changed and no validation
             // errors were encountered
             $command[$name] = $value;
         }
     }
     if ($params = $operation->getAdditionalParameters()) {
         foreach ($command->toArray() as $name => $value) {
             // It's only additional if it isn't defined in the schema
             if (!$operation->hasParam($name)) {
                 // Always set the name so that error messages are useful
                 $params->setName($name);
                 if (!$this->validator->validate($params, $value)) {
                     $errors = array_merge($errors, $this->validator->getErrors());
                 } elseif ($value !== $command[$name]) {
                     $command[$name] = $value;
                 }
             }
         }
     }
     if ($errors) {
         throw new CommandException('Validation errors: ' . implode("\n", $errors), $event->getTransaction());
     }
 }