/** * {@inheritDoc} */ protected function _executeCreateQuery(Query $query, array $options = []) { $postArguments = ['status' => $query->set()['text']]; /* @var Response $response */ $response = $this->driver()->client()->post($this->_baseUrl() . '/update.json', $postArguments); $this->_checkResponse($response); return $this->_transformResource($query->endpoint(), $response->json); }
/** * @expectedException \CvoTechnologies\Twitter\Webservice\Exception\UnknownErrorException */ public function testStatusUpdateDuplicate() { $client = $this->getMockBuilder('Cake\\Network\\Http\\Client')->setMethods(['post'])->getMock(); $client->expects($this->once())->method('post')->with('/1.1/statuses/update.json', ['status' => 'Test123'])->willReturn(new Response(['HTTP/1.1 403 Forbidden'], json_encode(['errors' => [['message' => 'Status is a duplicate.']]]))); $this->webservice->driver()->client($client); $query = new Query($this->webservice, new Endpoint()); $query->create(); $query->set(['text' => 'Test123']); $resource = $this->webservice->execute($query); $this->assertInstanceOf('Muffin\\Webservice\\Model\\Resource', $resource); $this->assertEquals($resource->text, 'Test123'); }
/** * {@inheritDoc} */ protected function _executeUpdateQuery(Query $query, array $options = []) { if (!isset($query->where()['id']) || is_array($query->where()['id'])) { return false; } $parameters = $query->set(); $parameters[$query->endpoint()->primaryKey()] = $query->where()['id']; $response = $this->driver()->client()->post($this->_baseUrl() . '/update.json', $parameters); if (!$response->isOk()) { throw new Exception($response->json['errors'][0]['message']); } return $this->_transformResource($query->endpoint(), $response->json); }
public function testUpdate() { StreamWrapper::emulate(HttpEmulation::fromCallable(function (RequestInterface $request) { $this->assertEquals('POST', $request->getMethod()); $this->assertEquals('/1.1/statuses/update.json', $request->getUri()->getPath()); $this->assertEquals(['id' => '2', 'status' => 'Status 2?'], \GuzzleHttp\Psr7\parse_query($request->getBody()->getContents())); 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_UPDATE); $query->set(['status' => 'Status 2?']); $query->where(['id' => 2]); $result = $this->webservice->execute($query); $this->assertInstanceOf('Muffin\\Webservice\\Model\\Resource', $result); $this->assertEquals(2, $result->id); $this->assertEquals('Status 2?', $result->text); }