public function testWritesEntryWithMetadata($client)
{
$logger = $client->logger(uniqid(self::TESTING_PREFIX));
self::$deletionQueue[] = $logger;
$data = 'test';
$httpRequest = ['requestMethod' => 'GET', 'requestUrl' => 'http://www.example.com', 'status' => 200];
$labels = ['test' => 'label'];
$severity = 'INFO';
$entry = $logger->entry($data, ['httpRequest' => $httpRequest, 'labels' => $labels, 'severity' => 200]);
$logger->write($entry);
$backoff = new ExponentialBackoff(8);
$entries = $backoff->execute(function () use($logger) {
$entries = iterator_to_array($logger->entries());
if (count($entries) === 0) {
throw new \Exception();
}
return $entries;
});
$actualEntryInfo = $entries[0]->info();
$this->assertEquals($data, $actualEntryInfo['textPayload']);
$this->assertEquals($httpRequest['requestMethod'], $actualEntryInfo['httpRequest']['requestMethod']);
$this->assertEquals($httpRequest['requestUrl'], $actualEntryInfo['httpRequest']['requestUrl']);
$this->assertEquals($httpRequest['status'], $actualEntryInfo['httpRequest']['status']);
$this->assertEquals($labels['test'], $actualEntryInfo['labels']['test']);
$this->assertEquals($severity, $actualEntryInfo['severity']);
}