public function testPublishMessagesAndPull($client)
{
$topicName = uniqid(self::TESTING_PREFIX);
$subName = uniqid(self::TESTING_PREFIX);
$topic = $client->createTopic($topicName);
$sub = $client->subscribe($subName, $topicName);
self::$deletionQueue[] = $topic;
self::$deletionQueue[] = $sub;
$messages = [['data' => 'First.', 'attributes' => ['first' => 'yes']], ['data' => 'Second.', 'attributes' => ['second' => 'yes']]];
$topic->publishBatch($messages);
$actualMessages = iterator_to_array($sub->pull());
$sub->modifyAckDeadlineBatch($actualMessages, 15);
$sub->acknowledgeBatch($actualMessages);
$this->assertEquals($messages[0]['data'], $actualMessages[0]->data());
$this->assertEquals($messages[0]['attributes'], $actualMessages[0]->attributes());
$this->assertEquals($messages[1]['data'], $actualMessages[1]->data());
$this->assertEquals($messages[1]['attributes'], $actualMessages[1]->attributes());
}