public function testSubscriptionsPaged()
{
$subscriptionResult = ['projects/project-name/subscriptions/subscription-a', 'projects/project-name/subscriptions/subscription-b', 'projects/project-name/subscriptions/subscription-c'];
$this->connection->listSubscriptionsByTopic(Argument::that(function ($options) {
if ($options['foo'] !== 'bar') {
return false;
}
if ($options['pageToken'] !== 'foo' && !is_null($options['pageToken'])) {
return false;
}
return true;
}))->willReturn(['subscriptions' => $subscriptionResult, 'nextPageToken' => 'foo'])->shouldBeCalledTimes(2);
$topic = new Topic($this->connection->reveal(), 'topic-name', 'project-name');
$subscriptions = $topic->subscriptions(['foo' => 'bar']);
// enumerate the iterator and kill after it loops twice.
$arr = [];
$i = 0;
foreach ($subscriptions as $subscription) {
$i++;
$arr[] = $subscription;
if ($i == 6) {
break;
}
}
$this->assertEquals(6, count($arr));
}