/** Test sending of all newsletters */
 function testEnqueue()
 {
     $newsletters = array();
     $newsletters[] = $this->objFromFixture('Newsletter', 'daily');
     $newsletters[] = $this->objFromFixture('Newsletter', 'monthly');
     $newsletters[] = $this->objFromFixture('Newsletter', 'all');
     $stuck1 = $this->objFromFixture('Recipient', 'stuck1');
     $stuck2 = $this->objFromFixture('Recipient', 'stuck2');
     $oldStuckTimeout = NewsletterSendController::$stuck_timeout;
     NewsletterSendController::$stuck_timeout = -5;
     //this evals to --5 minutes which is +5 minutes, ie: the future
     foreach ($newsletters as $newsletter) {
         $nsc = NewsletterSendController::inst();
         $nsc->enqueue($newsletter);
         $nsc->processQueue($newsletter->ID);
         foreach ($newsletter->MailingLists() as $mailingList) {
             foreach ($mailingList->Recipients() as $r) {
                 $this->assertEmailSent($r->Email, $newsletter->SendFrom, $newsletter->Subject);
             }
         }
         //check the email is sent out to the stalled item
         if ($newsletter->Subject == "Monthly Newsletter") {
             $this->assertEmailSent($stuck1->Email, $newsletter->SendFrom, $newsletter->Subject);
             $this->assertNull($this->findEmail($stuck2->Email, $newsletter->SendFrom, $newsletter->Subject), 'Email to stuck2 was NOT sent, as expected because the retry count was too high');
         }
     }
     NewsletterSendController::$stuck_timeout = $oldStuckTimeout;
 }