/**
  * Creates a "Promoted-Only" Tweet using the specialized Ads API end point.
  *
  * @param Account $account
  * @param $status
  * @param array $params
  *
  * @return mixed
  */
 public static function create(Account $account, $status, $params = [])
 {
     $params['status'] = $status;
     if (isset($params['media_ids']) && is_array($params['media_ids'])) {
         $params['media_ids'] = implode(',', $params['media_ids']);
     }
     $resource = str_replace(Resource::RESOURCE_REPLACE, $account->getId(), self::TWEET_CREATE);
     $response = $account->getTwitterAds()->post($resource, $params);
     return $response->getBody()->data;
 }
 public function testHackedUrlWillGenerateTheExpectedRoute()
 {
     $this->markTestSkipped("Not prepared");
     $twitterAds = $this->getMockBuilder(TwitterAds::class)->disableOriginalConstructor()->getMock();
     $account = new Account($twitterAds);
     $url = sprintf('accounts/%s/tailored_audiences/global_opt_out', $account->getId());
     $optPut = new GlobalOptOut($account);
     $optPut->setListType(TailoredAudience::LIST_TYPE_EMAIL);
     $data = (object) ['data' => (object) ['input_file_path' => 'test', 'list_type' => TailoredAudience::LIST_TYPE_EMAIL]];
     $twitterAds->expects($this->once())->method('put')->with($url, $optPut->toParams())->willReturn($data);
     $optPut->save();
 }
 /**
  * Deletes the current object instance depending on the
  * presence of `object->getId()`.
  */
 public function delete()
 {
     $resource = str_replace(static::RESOURCE_REPLACE, $this->account->getId(), static::RESOURCE);
     $resource = str_replace(static::RESOURCE_ID_REPLACE, $this->getId(), $resource);
     $response = $this->account->getTwitterAds()->delete($resource);
     $this->fromResponse($response->getBody()->data);
 }
 /**
  * @param string $accountId
  *
  * @return Account|Cursor
  */
 public function getAccounts($accountId = '')
 {
     $account = new Account($this);
     return $accountId ? $account->load($accountId) : $account->all();
 }
 /**
  * @depends testGetAccount
  * @param Account $account
  * @return Cursor
  */
 public function testGetAppLists(Account $account)
 {
     $cursor = $account->getAppLists();
     $this->assertInstanceOf(Cursor::class, $cursor);
     return $cursor;
 }