/**
  * {@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);
 }