/**
  * Generate for preview and execute right away.
  *
  * @param   EE_Message_To_Generate $message_to_generate
  * @param   bool                   $test_send                Whether this is a test send or not.
  * @return  EE_Messages_Queue | bool   false if unable to generate otherwise the generated queue.
  */
 public function generate_for_preview(EE_Message_To_Generate $message_to_generate, $test_send = false)
 {
     if (!$message_to_generate->valid()) {
         EE_Error::add_error(__('Unable to generate preview because of invalid data', 'event_espresso'), __FILE__, __FUNCTION__, __LINE__);
         return false;
     }
     //just make sure preview is set on the $message_to_generate (in case client forgot)
     $message_to_generate->set_preview(true);
     $this->_init_queue_and_generator();
     $this->queue_for_generation($message_to_generate, $test_send);
     $generated_queue = $this->_generator->generate(false);
     if ($generated_queue->execute(false)) {
         //the first queue item should be the preview
         $generated_queue->get_message_repository()->rewind();
         if (!$generated_queue->get_message_repository()->valid()) {
             return $generated_queue;
         }
         return $generated_queue->get_message_repository()->is_test_send() ? true : $generated_queue;
     } else {
         return false;
     }
 }