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: 2 years 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();
    }
}