$mailer = new sfMailer($dispatcher, array('logging' => true, 'delivery_strategy' => 'spool', 'spool_class' => 'TestSpool', 'spool_arguments' => array('TestMailMessage'), 'transport' => array('class' => 'TestMailerTransport'))); $transport = $mailer->getRealtimeTransport(); $spool = $mailer->getTransport()->getSpool(); $t->is($mailer->sendNextImmediately(), $mailer, '->sendNextImmediately() implements a fluid interface'); $mailer->composeAndSend('*****@*****.**', '*****@*****.**', 'Subject', 'Body'); $t->is($spool->getQueuedCount(), 0, '->sendNextImmediately() bypasses the spool'); $t->is($transport->getSentCount(), 1, '->sendNextImmediately() bypasses the spool'); $transport->reset(); $spool->reset(); $mailer->composeAndSend('*****@*****.**', '*****@*****.**', 'Subject', 'Body'); $t->is($spool->getQueuedCount(), 1, '->sendNextImmediately() bypasses the spool but only for the very next message'); $t->is($transport->getSentCount(), 0, '->sendNextImmediately() bypasses the spool but only for the very next message'); // ->getDeliveryAddress() ->setDeliveryAddress() $t->diag('->getDeliveryAddress() ->setDeliveryAddress()'); $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'none')); $mailer->setDeliveryAddress('*****@*****.**'); $t->is($mailer->getDeliveryAddress(), '*****@*****.**', '->setDeliveryAddress() sets the delivery address for the single_address strategy'); // ->getLogger() ->setLogger() $t->diag('->getLogger() ->setLogger()'); $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'none')); $mailer->setLogger($logger = new sfMailerMessageLoggerPlugin($dispatcher)); $t->ok($mailer->getLogger() === $logger, '->setLogger() sets the mailer logger'); // ->getDeliveryStrategy() $t->diag('->getDeliveryStrategy()'); $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'none')); $t->is($mailer->getDeliveryStrategy(), 'none', '->getDeliveryStrategy() returns the delivery strategy'); // ->getRealtimeTransport() ->setRealtimeTransport() $t->diag('->getRealtimeTransport() ->setRealtimeTransport()'); $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'none')); $mailer->setRealtimeTransport($transport = new TestMailerTransport()); $t->ok($mailer->getRealtimeTransport() === $transport, '->setRealtimeTransport() sets the mailer transport');