$message must provide at least one of data and attributes members.
Example:
$topic->publish([
'data' => 'New User Registered',
'attributes' => [
'id' => 1,
'userName' => 'John',
'location' => 'Detroit'
]
]);
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); }