$t = new lime_test(34); $dispatcher = new sfEventDispatcher(); // __construct() $t->diag('__construct()'); try { new sfMailer($dispatcher, array('delivery_strategy' => 'foo')); $t->fail('__construct() throws an InvalidArgumentException exception if the strategy is not valid'); } catch (InvalidArgumentException $e) { $t->pass('__construct() throws an InvalidArgumentException exception if the strategy is not valid'); } // main transport $mailer = new sfMailer($dispatcher, array('logging' => true, 'delivery_strategy' => 'realtime', 'transport' => array('class' => 'TestMailerTransport', 'param' => array('foo' => 'bar', 'bar' => 'foo')))); $t->is($mailer->getTransport()->getFoo(), 'bar', '__construct() passes the parameters to the main transport'); // spool $mailer = new sfMailer($dispatcher, array('logging' => true, 'delivery_strategy' => 'spool', 'spool_class' => 'TestSpool', 'spool_arguments' => array('TestMailMessage'), 'transport' => array('class' => 'Swift_SmtpTransport', 'param' => array('username' => 'foo')))); $t->is($mailer->getRealTimeTransport()->getUsername(), 'foo', '__construct() passes the parameters to the main transport'); try { $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'spool')); $t->fail('__construct() throws an InvalidArgumentException exception if the spool_class option is not set with the spool delivery strategy'); } catch (InvalidArgumentException $e) { $t->pass('__construct() throws an InvalidArgumentException exception if the spool_class option is not set with the spool delivery strategy'); } $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'spool', 'spool_class' => 'TestSpool')); $t->is(get_class($mailer->getTransport()), 'Swift_SpoolTransport', '__construct() recognizes the spool delivery strategy'); $t->is(get_class($mailer->getTransport()->getSpool()), 'TestSpool', '__construct() recognizes the spool delivery strategy'); // single address try { $mailer = new sfMailer($dispatcher, array('delivery_strategy' => 'single_address')); $t->fail('__construct() throws an InvalidArgumentException exception if the delivery_address option is not set with the spool single_address strategy'); } catch (InvalidArgumentException $e) { $t->pass('__construct() throws an InvalidArgumentException exception if the delivery_address option is not set with the spool single_address strategy');