123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- /*
- * This file is part of the Stash package.
- *
- * (c) Robert Hafner <tedivm@tedivm.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Stash\Test;
- use Stash\Test\Stubs\LoggerStub;
- use Stash\Test\Stubs\DriverExceptionStub;
- use Stash\Test\Stubs\PoolGetDriverStub;
- use Stash\Item;
- use Stash\Driver\Ephemeral as Ephemeral;
- /**
- * @package Stash
- * @author Robert Hafner <tedivm@tedivm.com>
- */
- class ItemLoggerTest extends \PHPUnit_Framework_TestCase
- {
- protected function getItem($key, $exceptionDriver = false)
- {
- if ($exceptionDriver) {
- $fullDriver = 'Stash\Test\Stubs\DriverExceptionStub';
- } else {
- $fullDriver = 'Stash\Driver\Ephemeral';
- }
- $item = new Item();
- $poolStub = new PoolGetDriverStub();
- $poolStub->setDriver(new $fullDriver());
- $item->setPool($poolStub);
- $item->setKey($key);
- return $item;
- }
- public function testSetLogger()
- {
- $item = $this->getItem(array('path', 'to', 'constructor'));
- $logger = new LoggerStub();
- $item->setLogger($logger);
- $this->assertAttributeInstanceOf('Stash\Test\Stubs\LoggerStub', 'logger', $item, 'setLogger injects logger into Item.');
- }
- public function testGet()
- {
- $logger = new LoggerStub();
- $item = $this->getItem(array('path', 'to', 'get'), true);
- $item->setLogger($logger);
- // triggerlogging
- $item->get('test_key');
- $this->assertInstanceOf('Stash\Test\Exception\TestException',
- $logger->lastContext['exception'], 'Logger was passed exception in event context.');
- $this->assertTrue(strlen($logger->lastMessage) > 0, 'Logger message set after "get" exception.');
- $this->assertEquals('critical', $logger->lastLevel, 'Exceptions logged as critical.');
- }
- public function testSet()
- {
- $logger = new LoggerStub();
- $item = $this->getItem(array('path', 'to', 'set'), true);
- $item->setLogger($logger);
- // triggerlogging
- $item->set('test_key')->save();
- $this->assertInstanceOf('Stash\Test\Exception\TestException',
- $logger->lastContext['exception'], 'Logger was passed exception in event context.');
- $this->assertTrue(strlen($logger->lastMessage) > 0, 'Logger message set after "set" exception.');
- $this->assertEquals('critical', $logger->lastLevel, 'Exceptions logged as critical.');
- }
- public function testClear()
- {
- $logger = new LoggerStub();
- $item = $this->getItem(array('path', 'to', 'clear'), true);
- $item->setLogger($logger);
- // triggerlogging
- $item->clear();
- $this->assertInstanceOf('Stash\Test\Exception\TestException',
- $logger->lastContext['exception'], 'Logger was passed exception in event context.');
- $this->assertTrue(strlen($logger->lastMessage) > 0, 'Logger message set after "clear" exception.');
- $this->assertEquals('critical', $logger->lastLevel, 'Exceptions logged as critical.');
- }
- }
|