public function testPublishMessageAndPull($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;
$message = ['data' => 'A message.', 'attributes' => ['location' => 'Detroit']];
$topic->publish($message);
$messages = iterator_to_array($sub->pull());
$sub->modifyAckDeadline($messages[0], 15);
$sub->acknowledge($messages[0]);
$this->assertEquals($message['data'], $messages[0]->data());
$this->assertEquals($message['attributes'], $messages[0]->attributes());
}