Google\Cloud\Tests\PubSub\PubSubClientTest::testSubscriptionsPaged PHP Method

testSubscriptionsPaged() public method

    public function testSubscriptionsPaged()
    {
        $subscriptionResult = [['name' => 'projects/project/subscriptions/subscription-a', 'topic' => 'projects/project/topics/topic-a'], ['name' => 'projects/project/subscriptions/subscription-b', 'topic' => 'projects/project/topics/topic-a'], ['name' => 'projects/project/subscriptions/subscription-c', 'topic' => 'projects/project/topics/topic-a']];
        $this->connection->listSubscriptions(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);
        $this->client->setConnection($this->connection->reveal());
        $subscriptions = $this->client->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));
    }