public function testPublish()
{
$message = ['data' => 'hello world', 'attributes' => ['key' => 'value']];
$ids = ['message1id'];
$this->connection->publishMessage(Argument::that(function ($options) use($message) {
if ($options['foo'] !== 'bar') {
return false;
}
$message['data'] = base64_encode($message['data']);
if ($options['messages'] !== [$message]) {
return false;
}
return true;
}))->willReturn($ids);
$topic = new Topic($this->connection->reveal(), 'topic-name', 'project-name');
$res = $topic->publish($message, ['foo' => 'bar']);
$this->assertEquals($res, $ids);
}