/** * Register Tasks with Rocketeer * * @param TasksHandler $queue */ public function onQueue(TasksHandler $queue) { $queue->listenTo($queue->config->get('rocketeer-flowdock::stage_before'), function ($task) { foreach ($task->config->get('rocketeer-flowdock::source_tokens') as $sourceToken) { $message = new RocketeerFlowdockMessage($sourceToken, $this->externalThreadID); $message->notify($task->rocketeer->getOption('branch'), $task->rocketeer->getApplicationName(), $task->connections->getConnection(), $task->config->get('rocketeer-flowdock::message_before'), $task->config->get('rocketeer-flowdock::thread_title')); } }); $queue->listenTo($queue->config->get('rocketeer-flowdock::stage_after'), function ($task) { foreach ($task->config->get('rocketeer-flowdock::source_tokens') as $sourceToken) { $message = new RocketeerFlowdockMessage($sourceToken, $this->externalThreadID); $message->notify($task->rocketeer->getOption('branch'), $task->rocketeer->getApplicationName(), $task->connections->getConnection(), $task->config->get('rocketeer-flowdock::message_after'), $task->config->get('rocketeer-flowdock::thread_title')); } }); $queue->listenTo($queue->config->get('rocketeer-flowdock::stage_rollback'), function ($task) { foreach ($task->config->get('rocketeer-flowdock::source_tokens') as $sourceToken) { $message = new RocketeerFlowdockMessage($sourceToken, $this->externalThreadID); $message->notify($task->rocketeer->getOption('branch'), $task->rocketeer->getApplicationName(), $task->connections->getConnection(), $task->config->get('rocketeer-flowdock::message_rollback'), $task->config->get('rocketeer-flowdock::thread_title')); } }); }
public function testNotifySendsValidDeploymentMessage() { $expectedHeaders = ['Content-Type' => 'application/json']; $expectedBody = json_encode(['flow_token' => 'dummyToken', 'event' => 'activity', 'author' => ['name' => get_current_user()], 'title' => 'dummyEventTitle', 'external_thread_id' => '20010203040506', 'thread' => ['title' => 'dummyThreadTitle', 'body' => '']]); $this->mockedHttpClient->shouldReceive('post')->once()->withArgs([RocketeerFlowdockMessage::MESSAGE_API, ['headers' => $expectedHeaders, 'body' => $expectedBody]])->andReturn(new Response(202)); $message = new RocketeerFlowdockMessage('dummyToken', '20010203040506', $this->mockedHttpClient); $message->notify('dummyBranch', 'dummyApplication', 'dummyConnection', 'dummyEventTitle', 'dummyThreadTitle'); }