public function testCreate() { StreamWrapper::emulate(HttpEmulation::fromCallable(function () { return new Response(200, [], json_encode(['id' => 1, 'mode' => 'public'])); })); $listsEndpoint = EndpointRegistry::get('CvoTechnologies/Twitter.Lists'); $list = $listsEndpoint->newEntity(['mode' => 'public']); $this->assertInstanceOf('Muffin\\Webservice\\Model\\Resource', $listsEndpoint->save($list)); }
public function testSave() { StreamWrapper::emulate(HttpEmulation::fromCallable(function (RequestInterface $request) { $this->assertEquals('POST', $request->getMethod()); $this->assertEquals('/1.1/statuses/update.json', $request->getUri()->getPath()); $this->assertEquals(['status' => 'Hello!'], \GuzzleHttp\Psr7\parse_query($request->getBody()->getContents())); return new \GuzzleHttp\Psr7\Response(200, [], json_encode(['id' => 1234, 'text' => 'Hello!'])); })); $statusesEndpoint = EndpointRegistry::get('CvoTechnologies/Twitter.Statuses'); $resource = $statusesEndpoint->newEntity(['text' => 'Hello!']); $this->assertInstanceOf('Muffin\\Webservice\\Model\\Resource', $statusesEndpoint->save($resource)); }
public function testStaticCreation() { $callableCalled = $assertionCallbackCalled = false; $httpEmulation = HttpEmulation::fromCallable(function () use(&$callableCalled) { $callableCalled = true; return new Response(); }, function () use(&$assertionCallbackCalled) { $assertionCallbackCalled = true; }); $request = 'GET / HTTP/1.1' . "\r\n"; $httpEmulation(\GuzzleHttp\Psr7\stream_for($request)); $this->assertTrue($callableCalled); $this->assertTrue($assertionCallbackCalled); }
public function testInitializeAccessTokenInvalid() { $invocation = 0; StreamWrapper::emulate(HttpEmulation::fromCallable(function (RequestInterface $request) use(&$invocation) { ++$invocation; $this->assertEquals('/oauth2/token', $request->getUri()->getPath()); if ($invocation === 1) { return new Response(500); } return new Response(200, [], json_encode(['token_type' => 'bearer', 'access_token' => 'testToken'])); })); $driver = new Twitter(['consumerKey' => 'consumerKey-1', 'consumerSecret' => 'consumerSecret-2']); $driver->initialize([]); $this->assertEquals('Bearer testToken', $driver->client()->config()['headers']['Authorization']); $this->assertEquals(2, $invocation); }
public function testUsingAuth() { StreamWrapper::emulate(HttpEmulation::fromCallable(function () { return new Response(); })); $client = new Client(['auth' => ['type' => 'CvoTechnologies/Twitter.Twitter']]); $client->get('https://example.com'); }
public function testDelete() { StreamWrapper::emulate(HttpEmulation::fromCallable(function (RequestInterface $request) { $this->assertEquals('POST', $request->getMethod()); $this->assertEquals('/1.1/statuses/destroy/2.json', $request->getUri()->getPath()); return new \GuzzleHttp\Psr7\Response(200, [], json_encode(['id' => 2, 'text' => 'Status 2?'])); })); $query = new Query($this->webservice, new Endpoint(['endpoint' => 'statuses', 'connection' => $this->webservice->driver()])); $query->action(Query::ACTION_DELETE); $query->where(['id' => 2]); $this->assertTrue($this->webservice->execute($query)); }
/** * Construct the callable based HTTP emulation. * * @param callable $callable The callable to use. * @param callable|null $assertedCallback The callback used to check for assertions. * @internal */ public function __construct(callable $callable, callable $assertedCallback = null) { parent::__construct($assertedCallback); $this->callable = $callable; }
public function testArrayAccess() { StreamWrapper::emulate(HttpEmulation::fromCallable(function (RequestInterface $request) use(&$invocations) { $invocations[] = $request; return new Response(200, [], 'test123'); })); $context = fopen('https://example.com', 'r'); $httpEmulator = stream_get_meta_data($context)['wrapper_data']; $this->assertTrue(isset($httpEmulator['headers'])); $this->assertInternalType('array', $httpEmulator['headers']); $this->assertCount(1, $httpEmulator['headers']); $this->assertEquals('HTTP/1.1 200 OK', $httpEmulator['headers'][0]); unset($httpEmulator['headers']); $this->assertTrue(isset($httpEmulator['headers'])); $httpEmulator['headers'] = []; $this->assertCount(1, $httpEmulator['headers']); fclose($context); }