Skip to content
This repository has been archived by the owner on Feb 29, 2020. It is now read-only.

Commit

Permalink
Added unit test for MonologInitializer class
Browse files Browse the repository at this point in the history
  • Loading branch information
swestcott committed Dec 28, 2012
1 parent 0b14ef3 commit f0225be
Showing 1 changed file with 72 additions and 0 deletions.
@@ -0,0 +1,72 @@
<?php

namespace swestcott\MonologExtension\Context\Initializer;

use Symfony\Component\DependencyInjection\ContainerBuilder,
Symfony\Component\DependencyInjection\Definition;

class MonologInitializerTest extends \PHPUnit_Framework_TestCase
{
private $loggerName = 'unitTest';

private function getContainer()
{
$container = new ContainerBuilder();
$container->setParameter('behat.monolog.logger_name', $this->loggerName);
$container->setParameter('behat.monolog.class', 'myTest');
return $container;
}

/**
* @covers swestcott\MonologExtension\Context\Initializer\MonologInitializer::__construct
* @covers swestcott\MonologExtension\Context\Initializer\MonologInitializer::initialize
*/
public function testInitialize()
{
$container = $this->getContainer();

// Create mock logger and register with DIC
$mockLogger = $this->getMock('\Monolog\Logger', null, array(), 'mockLogger', false);
$container->setDefinition('behat.monolog.logger.manager', new Definition('mockLogger'));

$initilizer = new MonologInitializer($container);
$context = $this->getMock('Behat\Behat\Context\SubcontextableContextInterface');

$this->assertObjectNotHasAttribute($this->loggerName, $context);

$initilizer->initialize($context);

$this->assertObjectHasAttribute($this->loggerName, $context);
$this->assertInstanceOf('mockLogger', $context->{$this->loggerName});
}

/**
* @covers swestcott\MonologExtension\Context\Initializer\MonologInitializer::__construct
* @covers swestcott\MonologExtension\Context\Initializer\MonologInitializer::supports
*/
public function testInitializerWithSupportedContext()
{
$container = $this->getContainer();
$container->compile();
$initializer = new MonologInitializer($container);

$context = $this->getMock('Behat\Behat\Context\SubcontextableContextInterface');

$this->assertTrue($initializer->supports($context));
}

/**
* @covers swestcott\MonologExtension\Context\Initializer\MonologInitializer::__construct
* @covers swestcott\MonologExtension\Context\Initializer\MonologInitializer::supports
*/
public function testInitializerWithUnsupportedContext()
{
$container = $this->getContainer();
$container->compile();
$initializer = new MonologInitializer($container);

$context = $this->getMock('Behat\Behat\Context\ContextInterface');

$this->assertFalse($initializer->supports($context));
}
}

0 comments on commit f0225be

Please sign in to comment.