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

testTopicsPaged() public method

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