예제 #1
0
파일: sfMailerTest.php 프로젝트: hunde/bsc
$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');