Login   Register  
PHP Classes
elePHPant
Icontem

File: tests/EasyLogger/EasyLoggerTest.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Nikola Posa  >  EasyLogger  >  tests/EasyLogger/EasyLoggerTest.php  >  Download  
File: tests/EasyLogger/EasyLoggerTest.php
Role: Unit test script
Content type: text/plain
Description: Logger tests
Class: EasyLogger
Log events to files
Author: By
Last change: Uploading new
Date: 1 year ago
Size: 4,090 bytes
 

Contents

Class file image Download
<?php
require_once 'EasyLogger.php';
require_once 
'EasyLogger/Handler/TestHandler.php';

class 
EasyLoggerTest extends PHPUnit_Framework_TestCase 
{
    protected function 
_assertHandlers($logger, array $handlers)
    {
        
$this->assertAttributeEquals(
            
$handlers,
            
'_handlers',  
            
$logger 
        
);
    }
    
    public function 
testAddingSingleHandlerOnInstantiation()
    {
        
$handler = new EasyLogger_Handler_TestHandler();
        
        
$logger = new EasyLogger($handler);
        
        
$this->_assertHandlers($logger, array($handler));
    }
    
    public function 
testAddingMultipleHandlersOnInstantiation()
    {
        
$handlers = array(
            new 
EasyLogger_Handler_TestHandler(),
            new 
EasyLogger_Handler_TestHandler()
        );
        
        
$logger = new EasyLogger($handlers);
        
        
$this->_assertHandlers($logger$handlers);
    }
    
    public function 
testManuallyAddingHandlers()
    {
        
$logger = new EasyLogger();
        
        
$handler1 = new EasyLogger_Handler_TestHandler();
        
$handler2 = new EasyLogger_Handler_TestHandler();
        
$handler3 = new EasyLogger_Handler_TestHandler();
        
        
$handlers = array($handler1$handler2$handler3);
        
        
$logger->addHandler($handler1);
        
$this->_assertHandlers($logger, array($handler1));
        
        
$logger->addHandlers(array($handler2$handler3));
        
$this->_assertHandlers($logger$handlers);
    }
    
    
/**
     * @expectedException LogicException
     */
    
public function testLoggingExceptionWhenHandlersStackIsEmpty()
    {
        
$logger = new EasyLogger();
        
        
$logger->log(EasyLogger::LEVEL_INFO'test');
    }
    
    
/**
     * @expectedException InvalidArgumentException
     */
    
public function testLoggingExceptionOnUnsupportedLevel()
    {
        
$logger = new EasyLogger(new EasyLogger_Handler_TestHandler());
        
        
$logger->log(3'test');
    }
    
    public function 
testLoggingHandling()
    {
        
$logger = new EasyLogger();
        
        
$handler1 = new EasyLogger_Handler_TestHandler();
        
$handler2 = new EasyLogger_Handler_TestHandler();
        
        
$logger->addHandlers(array($handler1$handler2));
        
        
$level EasyLogger::LEVEL_DEBUG;
        
$message 'test';
        
        
$logger->log($level$message);
        
        
$records1 $handler1->getRecords();
        
$records2 $handler2->getRecords();
        
        
$this->assertEquals($records1$records2);
        
        
$record current($records1);
        
$this->assertTrue(is_int($record['timestamp']));
        
$this->assertEquals($message$record['message']);
        
$this->assertEquals($level$record['level']);
        
$this->assertEquals($logger->getLevelName($level), $record['levelName']);
    }
    
    
/**
     * @dataProvider loggingMethodsProvider
     */
    
public function testShortcutLoggingMethods($method$expectedLevel)
    {
        
$handler = new EasyLogger_Handler_TestHandler();
        
        
$logger = new EasyLogger($handler);
        
$logger->$method('test');
        
        
$record current($handler->getRecords());
        
$this->assertEquals($expectedLevel$record['level']);
    }

    public function 
loggingMethodsProvider()
    {
        return array(
            array(
'debug'EasyLogger::LEVEL_DEBUG),
            array(
'info'EasyLogger::LEVEL_INFO),
            array(
'notice'EasyLogger::LEVEL_NOTICE),
            array(
'warning'EasyLogger::LEVEL_WARNING),
            array(
'error'EasyLogger::LEVEL_ERROR),
            array(
'critical'EasyLogger::LEVEL_CRITICAL),
            array(
'alert'EasyLogger::LEVEL_ALERT),
            array(
'emergency'EasyLogger::LEVEL_EMERGENCY)
        );
    }
    
    
/**
     * @expectedException LogicException
     */
    
public function testShortcutLoggingMethodExceptionWhenMessageIsNotSupplied()
    {
        
$logger = new EasyLogger(new EasyLogger_Handler_TestHandler());
        
$logger->alert();
    }
}