We will work on Apr 26th (Saturday) and will be off from Apr 30th (Wednesday) until May 2nd (Friday) for public holiday in our country

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