Вход Регистрация
Файл: gapps/vendor/monolog/monolog/tests/Monolog/Handler/RedisHandlerTest.php
Строк: 134
<?php

/*
 * This file is part of the Monolog package.
 *
 * (c) Jordi Boggiano <j.boggiano@seld.be>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace MonologHandler;

use 
MonologTestCase;
use 
MonologLogger;
use 
MonologFormatterLineFormatter;

class 
RedisHandlerTest extends TestCase
{
    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testConstructorShouldThrowExceptionForInvalidRedis()
    {
        new 
RedisHandler(new stdClass(), 'key');
    }

    public function 
testConstructorShouldWorkWithPredis()
    {
        
$redis $this->getMock('PredisClient');
        
$this->assertInstanceof('MonologHandlerRedisHandler', new RedisHandler($redis'key'));
    }

    public function 
testConstructorShouldWorkWithRedis()
    {
        
$redis $this->getMock('Redis');
        
$this->assertInstanceof('MonologHandlerRedisHandler', new RedisHandler($redis'key'));
    }

    public function 
testPredisHandle()
    {
        
$redis $this->getMock('PredisClient', array('rpush'));

        
// PredisClient uses rpush
        
$redis->expects($this->once())
            ->
method('rpush')
            ->
with('key''test');

        
$record $this->getRecord(Logger::WARNING'test', array('data' => new stdClass'foo' => 34));

        
$handler = new RedisHandler($redis'key');
        
$handler->setFormatter(new LineFormatter("%message%"));
        
$handler->handle($record);
    }

    public function 
testRedisHandle()
    {
        
$redis $this->getMock('Redis', array('rpush'));

        
// Redis uses rPush
        
$redis->expects($this->once())
            ->
method('rPush')
            ->
with('key''test');

        
$record $this->getRecord(Logger::WARNING'test', array('data' => new stdClass'foo' => 34));

        
$handler = new RedisHandler($redis'key');
        
$handler->setFormatter(new LineFormatter("%message%"));
        
$handler->handle($record);
    }

    public function 
testRedisHandleCapped()
    {
        
$redis $this->getMock('Redis', array('multi''rpush''ltrim''exec'));

        
// Redis uses multi
        
$redis->expects($this->once())
            ->
method('multi')
            ->
will($this->returnSelf());

        
$redis->expects($this->once())
            ->
method('rpush')
            ->
will($this->returnSelf());

        
$redis->expects($this->once())
            ->
method('ltrim')
            ->
will($this->returnSelf());

        
$redis->expects($this->once())
            ->
method('exec')
            ->
will($this->returnSelf());

        
$record $this->getRecord(Logger::WARNING'test', array('data' => new stdClass'foo' => 34));

        
$handler = new RedisHandler($redis'key'Logger::DEBUGtrue10);
        
$handler->setFormatter(new LineFormatter("%message%"));
        
$handler->handle($record);
    }

    public function 
testPredisHandleCapped()
    {
        
$redis $this->getMock('PredisClient', array('transaction'));

        
$redisTransaction $this->getMock('PredisClient', array('rpush''ltrim'));

        
$redisTransaction->expects($this->once())
            ->
method('rpush')
            ->
will($this->returnSelf());

        
$redisTransaction->expects($this->once())
            ->
method('ltrim')
            ->
will($this->returnSelf());

        
// Redis uses multi
        
$redis->expects($this->once())
            ->
method('transaction')
            ->
will($this->returnCallback(function ($cb) use ($redisTransaction) {
                
$cb($redisTransaction);
            }));

        
$record $this->getRecord(Logger::WARNING'test', array('data' => new stdClass'foo' => 34));

        
$handler = new RedisHandler($redis'key'Logger::DEBUGtrue10);
        
$handler->setFormatter(new LineFormatter("%message%"));
        
$handler->handle($record);
    }
}
Онлайн: 0
Реклама