Commit 5cf27c31 authored by Ivan Chepurnyi's avatar Ivan Chepurnyi

Added Observer generation helper

parent 0188c388
......@@ -20,8 +20,6 @@ before_script:
- bin/mage-ci shell $MAGE_DIR ecomdev-phpunit.php -a magento-config --db-name magento --same-db 1 --base_url http://test.magento.com/
# Configuring test suite
- bin/mage-ci shell $MAGE_DIR ecomdev-phpunit.php -a change-status --enable
# Fix Magento autoloader to run test
- bin/mage-ci shell $MAGE_DIR ecomdev-phpunit.php -a fix-autoloader
# Copying phpunit.xml for travis builds
- cp .travis/phpunit.xml $MAGE_DIR/phpunit.xml
script:
......
......@@ -30,6 +30,7 @@ use EcomDev_PHPUnit_Helper as TestHelper;
* @method EcomDev_PHPUnit_Mock_Proxy adminSession(array $resources = array())
* @method EcomDev_PHPUnit_Mock_Proxy customerSession(int $customerId)
* @method EcomDev_PHPUnit_Mock_Proxy guestSession()
* @method Varien_Event_Observer generateObserver(array $eventData, string $eventName = null)
*/
abstract class EcomDev_PHPUnit_Test_Case extends PHPUnit_Framework_TestCase
{
......
<?php
/**
* PHP Unit test suite for Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
*
* @category EcomDev
* @package EcomDev_PHPUnit
* @copyright Copyright (c) 2013 EcomDev BV (http://www.ecomdev.org)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* @author Ivan Chepurnyi <ivan.chepurnyi@ecomdev.org>
*/
/**
* Helper for stubbing event observer in Magento
*
*
*/
class EcomDev_PHPUnit_Test_Case_Helper_Observer extends EcomDev_PHPUnit_Helper_Abstract
{
/**
* Generates observer object
*
* @param array $eventData
* @param string $eventName
*
* @return Varien_Event_Observer
*/
public function helperGenerateObserver(
$eventData, $eventName = null)
{
$event = new Varien_Event($eventData);
$observer = new Varien_Event_Observer();
$observer->setEvent($event);
if ($eventName) {
$event->setName($event);
$observer->setEventName($eventName);
}
$observer->addData($eventData);
return $observer;
}
}
......@@ -147,6 +147,7 @@
<session>EcomDev_PHPUnit_Test_Case_Helper_Session</session>
<customer>EcomDev_PHPUnit_Test_Case_Helper_Customer</customer>
<guest>EcomDev_PHPUnit_Test_Case_Helper_Guest</guest>
<observer>EcomDev_PHPUnit_Test_Case_Helper_Observer</observer>
</helpers>
</suite>
</phpunit>
......
<?php
class EcomDev_PHPUnitTest_Test_Helper_Observer extends EcomDev_PHPUnit_Test_Case
{
public function testItStubsObserver()
{
$eventData = array(
'some_key' => 'some_value',
'another_key' => 'another_value'
);
$observer = $this->generateObserver($eventData);
$this->assertEventData($eventData, $observer);
$this->assertNull($observer->getEventName());
$this->assertNull($observer->getEvent()->getName());
}
public function testItStubsObserverWithEventName()
{
$eventData = array(
'some_key' => 'some_value',
'another_key' => 'another_value'
);
$observer = $this->generateObserver($eventData, 'my_event_name');
$this->assertInstanceOf('Varien_Event_Observer', $observer);
$this->assertEventData($eventData, $observer);
$this->assertEquals('my_event_name', $observer->getEventName());
$this->assertEquals('my_event_name', $observer->getEvent()->getName());
}
protected function assertEventData($eventData, $observer)
{
foreach ($eventData as $key => $value) {
$this->assertEquals(
$value,
$observer->getDataUsingMethod($key)
);
$this->assertEquals(
$value,
$observer->getEvent()->getDataUsingMethod($key)
);
}
}
}
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment