You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.1 KiB

<?php
namespace MageTest\TestHelper;
/**
* Class BaseTest
*
* Class containing common methods useful for unit testing.
* Since Magallanes keeps compatibility with PHP 5.3, those methods can't be moved to a trait.
* This class extends \PHPUnit_Framework_TestCase so it can be used with any test class.
*
* @package MageTest\TestHelper
* @author Jakub Turek <ja@kubaturek.pl>
*/
abstract class BaseTest extends \PHPUnit_Framework_TestCase
{
/**
* Returns value of non-public property from given class
*
* @param string|object $object Object instance or class name
* @param string $propertyName Class' or object's property name
* @return mixed
*/
final protected function getPropertyValue($object, $propertyName)
{
$configProperty = new \ReflectionProperty($object, $propertyName);
$configProperty->setAccessible(true);
return $configProperty->getValue($object);
}
/**
* Sets value to given property and given object
*
* @param object $object Object instance
* @param string $propertyName Property name
* @param mixed $value Value to set
*/
final protected function setPropertyValue($object, $propertyName, $value)
{
$configProperty = new \ReflectionProperty($object, $propertyName);
$configProperty->setAccessible(true);
$configProperty->setValue($object, $value);
}
/**
* Disable logging to log file and turn off colors
*
* @before
*/
protected function setUpConsoleStatics()
{
$consoleReflection = new \ReflectionClass('Mage\Console');
$logEnableProperty = $consoleReflection->getProperty('logEnabled');
$logEnableProperty->setAccessible(true);
$logEnableProperty->setValue(false);
$configMock = $this->getMock('Mage\Config');
$configMock->expects($this->any())
->method('getParameter')
->with('no-color')
->willReturn(true);
$configProperty = $consoleReflection->getProperty('config');
$configProperty->setAccessible(true);
$configProperty->setValue($configMock);
}
}