/**
  * @param \Ratchet\ConnectionInterface $conn
  * @param \Guzzle\Http\Message\RequestInterface $request null is default because PHP won't let me overload; don't pass null!!!
  * @throws \UnexpectedValueException if a RequestInterface is not passed
  */
 public function onOpen(ConnectionInterface $conn, \Guzzle\Http\Message\RequestInterface $request = null)
 {
     $response = new \Guzzle\Http\Message\Response(200);
     $response->setBody(file_get_contents($this->path));
     $conn->send($response);
     $conn->close();
 }
Example #2
0
 public function testEventOnErrorRequest()
 {
     // prepare response
     $response = new \Guzzle\Http\Message\Response(404);
     $response->setBody(json_encode(array('error' => 0)));
     // replace response
     $plugin = new \Guzzle\Plugin\Mock\MockPlugin();
     $plugin->addResponse($response);
     // configure subscriber
     $factory = new Factory('http://localhost/');
     $factory->setRequestClassNamespace('\\Sokil\\Rest\\Client\\RequestMock');
     $request = $factory->createRequest('GetRequestMock');
     $request->addSubscriber($plugin);
     $callStack = array();
     // configure event
     $request->onBeforeSend(function (\Guzzle\Common\Event $e) use(&$callStack) {
         $callStack[] = 'before_send';
     })->onSend(function (\Guzzle\Common\Event $e) use(&$callStack) {
         $callStack[] = 'send';
     })->onCompleteSend(function (\Guzzle\Common\Event $e) use(&$callStack) {
         $callStack[] = 'complete';
     })->onError(function (\Guzzle\Common\Event $e) use(&$callStack) {
         $callStack[] = 'error';
     })->onSuccess(function (\Guzzle\Common\Event $e) use(&$callStack) {
         $callStack[] = 'success';
     });
     try {
         $response = $request->send();
         $this->assertFalse($response);
     } catch (\Guzzle\Http\Exception\ClientErrorResponseException $e) {
     }
     $this->assertEquals(array('before_send', 'send', 'complete', 'error'), $callStack);
 }
Example #3
0
 private function initBitlyClient($data)
 {
     $bitlyResponse = new \Guzzle\Http\Message\Response(200);
     $bitlyResponse->setBody($data);
     $plugin = new \Guzzle\Plugin\Mock\MockPlugin();
     $plugin->addResponse($bitlyResponse);
     $this->bitly_client->addSubscriber($plugin);
 }
 private function createPackagistClient($data, $status = 200)
 {
     $packagistResponse = new \Guzzle\Http\Message\Response($status);
     $packagistResponse->setBody($data);
     $plugin = new \Guzzle\Plugin\Mock\MockPlugin();
     $plugin->addResponse($packagistResponse);
     $clientHttp = new \Guzzle\Http\Client();
     $clientHttp->addSubscriber($plugin);
     return new Client($clientHttp);
 }
 /**
  * @return \Guzzle\Http\Client
  */
 protected function buildHttpMockClient($body)
 {
     $plugin = new \Guzzle\Plugin\Mock\MockPlugin();
     $response = new \Guzzle\Http\Message\Response(200);
     $response->setBody($body);
     $plugin->addResponse($response);
     $mockedClient = new \Guzzle\Http\Client();
     $mockedClient->addSubscriber($plugin);
     return $mockedClient;
 }
 /**
  * @param \Acquia\Network\AcquiaNetworkClient $network
  * @param string $responseFile
  */
 public function addMockResponse(AcquiaNetworkClient $network, $responseFile, $responseCode)
 {
     $mock = new \Guzzle\Plugin\Mock\MockPlugin();
     $response = new \Guzzle\Http\Message\Response($responseCode);
     if (is_string($responseFile)) {
         $response->setBody(file_get_contents($responseFile));
     }
     $mock->addResponse($response);
     $network->addSubscriber($mock);
 }
 public function setUp()
 {
     // see the config_test.yml, there's a parameters in order to not stream the output using FakeImageCreator.
     $data = '{"package":{"name":"pugx\\/badge-poser","description":"add badges on your readme, such as downloads number or latest version.","time":"2013-05-24T14:45:06+00:00","maintainers":[{"name":"liuggio","email":"*****@*****.**"}],"versions":{"dev-master":{"name":"pugx\\/badge-poser","description":"add badges on your readme, such as downloads number or latest version.","keywords":[],"homepage":"","version":"dev-master","version_normalized":"9999999-dev","license":[],"authors":[],"source":{"type":"git","url":"https:\\/\\/github.com\\/PUGX\\/badge-poser.git","reference":"024df1d420cd715aea3400bfea9b87ed0f3bb47e"},"dist":{"type":"zip","url":"https:\\/\\/api.github.com\\/repos\\/PUGX\\/badge-poser\\/zipball\\/024df1d420cd715aea3400bfea9b87ed0f3bb47e","reference":"024df1d420cd715aea3400bfea9b87ed0f3bb47e","shasum":""},"type":"library","time":"2013-05-24T19:19:25+00:00","autoload":{"psr-0":{"":"src\\/"}},"extra":{"symfony-app-dir":"app","symfony-web-dir":"web","branch-alias":{"dev-master":"0.1-dev"}},"require":{"php":">=5.3.3","symfony\\/symfony":"2.2.*","doctrine\\/orm":">=2.2,<3.0,>=2.2.3","doctrine\\/doctrine-bundle":"1.2.*","twig\\/extensions":"1.0.*","symfony\\/assetic-bundle":"2.1.*","symfony\\/swiftmailer-bundle":"2.2.*","symfony\\/monolog-bundle":"2.2.*","sensio\\/distribution-bundle":"2.2.*","sensio\\/framework-extra-bundle":"2.2.*","sensio\\/generator-bundle":"2.2.*","jms\\/security-extra-bundle":"1.4.*","jms\\/di-extra-bundle":"1.3.*","knplabs\\/packagist-api":"dev-master"},"require-dev":{"guzzle\\/plugin-mock":"*"}},"dev-develop":{"name":"pugx\\/badge-poser","description":"add badges on your readme, such as downloads number or latest version.","keywords":[],"homepage":"","version":"dev-develop","version_normalized":"dev-develop","license":[],"authors":[],"source":{"type":"git","url":"https:\\/\\/github.com\\/PUGX\\/badge-poser.git","reference":"024df1d420cd715aea3400bfea9b87ed0f3bb47e"},"dist":{"type":"zip","url":"https:\\/\\/api.github.com\\/repos\\/PUGX\\/badge-poser\\/zipball\\/024df1d420cd715aea3400bfea9b87ed0f3bb47e","reference":"024df1d420cd715aea3400bfea9b87ed0f3bb47e","shasum":""},"type":"library","time":"2013-05-24T19:19:25+00:00","autoload":{"psr-0":{"":"src\\/"}},"extra":{"symfony-app-dir":"app","symfony-web-dir":"web","branch-alias":{"dev-master":"0.1-dev"}},"require":{"php":">=5.3.3","symfony\\/symfony":"2.2.*","doctrine\\/orm":">=2.2,<3.0,>=2.2.3","doctrine\\/doctrine-bundle":"1.2.*","twig\\/extensions":"1.0.*","symfony\\/assetic-bundle":"2.1.*","symfony\\/swiftmailer-bundle":"2.2.*","symfony\\/monolog-bundle":"2.2.*","sensio\\/distribution-bundle":"2.2.*","sensio\\/framework-extra-bundle":"2.2.*","sensio\\/generator-bundle":"2.2.*","jms\\/security-extra-bundle":"1.4.*","jms\\/di-extra-bundle":"1.3.*","knplabs\\/packagist-api":"dev-master"},"require-dev":{"guzzle\\/plugin-mock":"*"}}},"type":"library","repository":"https:\\/\\/github.com\\/PUGX\\/badge-poser","downloads":{"total":99,"monthly":12,"daily":9},"favers":9}}';
     $packagistResponse = new \Guzzle\Http\Message\Response(200);
     $packagistResponse->setBody($data);
     $plugin = new \Guzzle\Plugin\Mock\MockPlugin();
     $plugin->addResponse($packagistResponse);
     $clientHttp = new \Guzzle\Http\Client();
     $clientHttp->addSubscriber($plugin);
     $this->packagistClient = new Client($clientHttp);
 }
Example #8
0
 /**
  * @expectedException \OutOfBoundsException
  */
 public function testNestedCollectionNotFound()
 {
     $data = array('invalidProperty' => array(array('name' => 'value1')));
     $response = new \Guzzle\Http\Message\Response(200);
     $response->setBody(Json::encode($data));
     $mock = new \Guzzle\Plugin\Mock\MockPlugin();
     $mock->addResponse($response);
     $client = new Client('http://example.com');
     $client->addSubscriber($mock);
     $request = $client->get('/test');
     $collection = new DummyCollection($request);
     foreach ($collection as $element) {
         // We should never get here ...
     }
 }
Example #9
0
 /**
  * @Given /^the response should be "([^"]*)"$/
  * @param string $string
  * @return void
  * @throws \Exception
  */
 public function theResponseShouldBe($string)
 {
     $data = $this->response->getBody(true);
     if ($string != $data) {
         throw new \Exception(sprintf("Unexpected response.\nExpected response:%s\nActual response:\n%s" . $string, $data));
     }
 }
 /**
  * Return the response body as a PHP array
  *
  * @return array
  **/
 protected function getResponseBody()
 {
     try {
         return $this->response->json();
     } catch (\Exception $e) {
         $this->responseErrors['json'] = $e->getMessage();
         return [];
     }
 }
 /**
  * Get the appropriate redirect url
  */
 public function getRedirectURL()
 {
     if ($this->response) {
         if ($this->response->isSuccessful()) {
             return $this->getReturnUrl();
         } elseif ($this->response->isRedirect()) {
             return $this->response->getRedirectUrl();
         }
     }
     return $this->getCancelUrl();
 }
 public function testGetStat()
 {
     $factory = new \Sokil\DistributiveManager('http://dl.local/');
     $factory->setAppId('5368e18efb5d1b1b2fa3a97d')->setAppKey('awlxWpJ2CiOzorQQYHkx0s3BI4ZjjlnB7yJNq7nk');
     /* @var $request \Sokil\DistributiveManager\Request\DownloadStat */
     $request = $factory->createRequest('downloadStat', array('environment_name' => 'windows'));
     // prepare response mock
     $responseMock = new \Guzzle\Http\Message\Response(200);
     $responseMock->setBody(json_encode(array('stat' => array('windows' => array('1399493561' => 20, '1399493562' => 8), 'android' => array('1399493563' => 20, '1399493564' => 8)), 'total' => 28)));
     $plugin = new \Guzzle\Plugin\Mock\MockPlugin();
     $plugin->addResponse($responseMock);
     $request->addSubscriber($plugin);
     // send request
     $response = $request->send();
     // check response
     $this->assertEquals(200, $response->getHttpCode());
     $this->assertEquals(28, $response->getTotalDownloads());
     $this->assertEquals(array('windows' => array('1399493561' => 20, '1399493562' => 8), 'android' => array('1399493563' => 20, '1399493564' => 8)), $response->getStatList());
     $this->assertEquals(array('1399493561' => 20, '1399493562' => 8), $response->getEnvironmentStat('windows'));
 }
 /**
  * {@inheritDoc}
  *
  * @internal The current user endpoint gives a redirection, so we need to
  *     override the HTTP call to avoid redirections.
  */
 protected function fetchUserDetails(TokenCredentials $tokenCredentials, $force = true)
 {
     if (!$this->cachedUserDetailsResponse || $force) {
         try {
             $this->request($this->urlUserDetails(), $tokenCredentials, array('options' => array('allow_redirects' => false)));
         } catch (BadResponseException $e) {
             throw new \Exception($e->getMessage());
         }
         switch ($this->responseType) {
             case 'json':
                 $this->cachedUserDetailsResponse = $this->response->json();
                 break;
             case 'xml':
                 $this->cachedUserDetailsResponse = $this->response->xml();
                 break;
             case 'string':
                 parse_str($this->response->getBody(), $this->cachedUserDetailsResponse);
                 break;
             default:
                 throw new \InvalidArgumentException("Invalid response type [{$this->responseType}].");
         }
     }
     return $this->cachedUserDetailsResponse;
 }
 /**
  * @expectedException \Tufesa\Service\Exceptions\ResponseException
  */
 public function test_buy_a_ticket_with_invalid_data_should_raise_an_exception_work()
 {
     $response = new \Guzzle\Http\Message\Response(200);
     $response->setBody('{"_id": "1.0", "_Response": { "_revAuth": null, "resultField": { "_id": "666", "_message": "SOME DUMMY MESSAGE HERE" }}}');
     $plugin = new \Guzzle\Plugin\Mock\MockPlugin();
     $plugin->addResponse($response);
     $guzzleClient = new GuzzleClient();
     $guzzleClient->addSubscriber($plugin);
     $tufesaClient = new Client($guzzleClient);
     $requestData = ["from" => "GDL", "to" => "OBR", "date" => "20140720", "schedule" => 123456789, "folio" => 123456789, "customers" => [["name" => "Juan Perez", "category" => "C", "seat" => 8]]];
     $buyRequest = BuyRequestFactory::create($requestData);
     $buyResponse = $tufesaClient->buyTickets($buyRequest);
     $this->assertInstanceOf('Tufesa\\Service\\Type\\BuyResponse', $buyResponse);
 }
 /**
  * Output
  *
  * @param  Guzzle\Http\Message\Response $response Guzzle response object
  * @param  boolean $body
  * @return Array|Guzzle\Http\Message\Response Guzzle response body|object
  */
 protected function output($response, $body)
 {
     return $body ? $response->json() : $response;
 }
 public function testGetResponseDataException()
 {
     $this->setExpectedException('Exception');
     $mockResponse = new \Guzzle\Http\Message\Response(200);
     $mockResponse->setBody('simple text', 'application/text');
     $this->setPropertyValue('response', $mockResponse);
     $this->obj->getResponseData();
 }