/**
  * 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');
 }