Вход Регистрация
Файл: gapps/vendor/swiftmailer/swiftmailer/tests/unit/Swift/Plugins/AntiFloodPluginTest.php
Строк: 117
<?php

class Swift_Plugins_AntiFloodPluginTest extends PHPUnit_Framework_TestCase
{
    public function 
testThresholdCanBeSetAndFetched()
    {
        
$plugin = new Swift_Plugins_AntiFloodPlugin(10);
        
$this->assertEquals(10$plugin->getThreshold());
        
$plugin->setThreshold(100);
        
$this->assertEquals(100$plugin->getThreshold());
    }

    public function 
testSleepTimeCanBeSetAndFetched()
    {
        
$plugin = new Swift_Plugins_AntiFloodPlugin(105);
        
$this->assertEquals(5$plugin->getSleepTime());
        
$plugin->setSleepTime(1);
        
$this->assertEquals(1$plugin->getSleepTime());
    }

    public function 
testPluginStopsConnectionAfterThreshold()
    {
        
$transport $this->_createTransport();
        
$transport->expects($this->once())
                  ->
method('start');
        
$transport->expects($this->once())
                  ->
method('stop');

        
$evt $this->_createSendEvent($transport);

        
$plugin = new Swift_Plugins_AntiFloodPlugin(10);
        for (
$i 0$i 12; ++$i) {
            
$plugin->sendPerformed($evt);
        }
    }

    public function 
testPluginCanStopAndStartMultipleTimes()
    {
        
$transport $this->_createTransport();
        
$transport->expects($this->exactly(5))
                  ->
method('start');
        
$transport->expects($this->exactly(5))
                  ->
method('stop');

        
$evt $this->_createSendEvent($transport);

        
$plugin = new Swift_Plugins_AntiFloodPlugin(2);
        for (
$i 0$i 11; ++$i) {
            
$plugin->sendPerformed($evt);
        }
    }

    public function 
testPluginCanSleepDuringRestart()
    {
        
$sleeper $this->getMockBuilder('Swift_Plugins_Sleeper')->getMock();
        
$sleeper->expects($this->once())
                ->
method('sleep')
                ->
with(10);

        
$transport $this->_createTransport();
        
$transport->expects($this->once())
                  ->
method('start');
        
$transport->expects($this->once())
                  ->
method('stop');

        
$evt $this->_createSendEvent($transport);

        
$plugin = new Swift_Plugins_AntiFloodPlugin(9910$sleeper);
        for (
$i 0$i 101; ++$i) {
            
$plugin->sendPerformed($evt);
        }
    }

    private function 
_createTransport()
    {
        return 
$this->getMockBuilder('Swift_Transport')->getMock();
    }

    private function 
_createSendEvent($transport)
    {
        
$evt $this->getMockBuilder('Swift_Events_SendEvent')
                    ->
disableOriginalConstructor()
                    ->
getMock();
        
$evt->expects($this->any())
            ->
method('getSource')
            ->
will($this->returnValue($transport));
        
$evt->expects($this->any())
            ->
method('getTransport')
            ->
will($this->returnValue($transport));

        return 
$evt;
    }
}
Онлайн: 0
Реклама