Skip to content

Commit

Permalink
Merge pull request #61 from magento-extensibility/MAGETWO-32870
Browse files Browse the repository at this point in the history
[Github] extra tests for current interception behavior #965
  • Loading branch information
vpelipenko committed Jan 27, 2015
2 parents 685df6f + 5ed5b22 commit a68cc70
Show file tree
Hide file tree
Showing 6 changed files with 386 additions and 70 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Interception;

/**
* Class GeneralTest
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
abstract class AbstractPlugin extends \PHPUnit_Framework_TestCase
{

/**
* @var \PHPUnit_Framework_MockObject_MockObject
*/
protected $_configReader;

/**
* @var \Magento\Framework\ObjectManagerInterface
*/
protected $_objectManager;

public function setUpInterceptionConfig($pluginConfig)
{
$config = new \Magento\Framework\Interception\ObjectManager\Config\Developer();
$factory = new \Magento\Framework\ObjectManager\Factory\Dynamic\Developer($config, null);

$this->_configReader = $this->getMock('Magento\Framework\Config\ReaderInterface');
$this->_configReader->expects(
$this->any()
)->method(
'read'
)->will(
$this->returnValue($pluginConfig)
);

$areaList = $this->getMock('Magento\Framework\App\AreaList', [], [], '', false);
$areaList->expects($this->any())->method('getCodes')->will($this->returnValue([]));
$configScope = new \Magento\Framework\Config\Scope($areaList, 'global');
$cache = $this->getMock('Magento\Framework\Config\CacheInterface');
$cache->expects($this->any())->method('load')->will($this->returnValue(false));
$definitions = new \Magento\Framework\ObjectManager\Definition\Runtime();
$relations = new \Magento\Framework\ObjectManager\Relations\Runtime();
$interceptionConfig = new Config\Config(
$this->_configReader,
$configScope,
$cache,
$relations,
$config,
$definitions
);
$interceptionDefinitions = new Definition\Runtime();
$this->_objectManager = new \Magento\Framework\ObjectManager\ObjectManager(
$factory,
$config,
[
'Magento\Framework\Config\CacheInterface' => $cache,
'Magento\Framework\Config\ScopeInterface' => $configScope,
'Magento\Framework\Config\ReaderInterface' => $this->_configReader,
'Magento\Framework\ObjectManager\RelationsInterface' => $relations,
'Magento\Framework\ObjectManager\ConfigInterface' => $config,
'Magento\Framework\Interception\ObjectManager\ConfigInterface' => $config,
'Magento\Framework\ObjectManager\DefinitionInterface' => $definitions,
'Magento\Framework\Interception\DefinitionInterface' => $interceptionDefinitions
]
);
$factory->setObjectManager($this->_objectManager);
$config->setInterceptionConfig($interceptionConfig);
$config->extend(
[
'preferences' => [
'Magento\Framework\Interception\PluginListInterface' =>
'Magento\Framework\Interception\PluginList\PluginList',
'Magento\Framework\Interception\ChainInterface' =>
'Magento\Framework\Interception\Chain\Chain',
],
]
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,44 @@ public function K($param1)
{
return '<K>' . $param1 . '</K>';
}

/**
* @SuppressWarnings(PHPMD.ShortMethodName)
*/
public function V($param1)
{
return '<V>' . $param1 . '</V>';
}

/**
* @SuppressWarnings(PHPMD.ShortMethodName)
*/
public function W($param1)
{
return '<W>' . $param1 . '</W>';
}

/**
* @SuppressWarnings(PHPMD.ShortMethodName)
*/
public function X($param1)
{
return '<X>' . $param1 . '</X>';
}

/**
* @SuppressWarnings(PHPMD.ShortMethodName)
*/
public function Y($param1)
{
return '<Y>' . $param1 . '</Y>';
}

/**
* @SuppressWarnings(PHPMD.ShortMethodName)
*/
public function Z($param1)
{
return '<Z>' . $param1 . '</Z>';
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\Interception\Fixture\Intercepted;

use Magento\Framework\Interception\Fixture\Intercepted;

class FirstPlugin
{
/**
* @var int
*/
protected $_counter = 0;

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundC(Intercepted $subject, \Closure $next, $param1)
{
return '<F:C>' . $next($param1) . '</F:C>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundD(Intercepted $subject, \Closure $next, $param1)
{
$this->_counter++;
return '<F:D>' . $this->_counter . ': ' . $next($param1) . '</F:D>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundK(Intercepted $subject, \Closure $next, $param1)
{
$result = $subject->C($param1);
return '<F:K>' . $subject->F($result) . '</F:K>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function beforeG(Intercepted $subject, $param1)
{
return ['<F:bG>' . $param1 . '</F:bG>'];
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundG(Intercepted $subject, \Closure $next, $param1)
{
return $next('<F:G>' . $param1 . '</F:G>');
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterG(Intercepted $subject, $result)
{
return '<F:aG>' . $result . '</F:aG>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function beforeV(Intercepted $subject, $param1)
{
return ['<F:bV/>'];
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundV(Intercepted $subject, \Closure $next, $param1)
{
return '<F:V>' . $param1 . '<F:V/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function beforeW(Intercepted $subject, $param1)
{
return ['<F:bW/>'];
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundW(Intercepted $subject, \Closure $next, $param1)
{
return '<F:W>' . $param1 . '<F:W/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterW(Intercepted $subject, $result)
{
return '<F:aW/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function beforeX(Intercepted $subject, $param1)
{
return ['<F:bX/>'];
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundY(Intercepted $subject, \Closure $next, $param1)
{
return '<F:Y>' . $param1 . '<F:Y/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterZ(Intercepted $subject, $result)
{
return '<F:aZ/>';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,68 @@ public function afterG(Intercepted $subject, $result)
{
return '<P:aG>' . $result . '</P:aG>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function beforeV(Intercepted $subject, $param1)
{
return ['<P:bV/>'];
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundV(Intercepted $subject, \Closure $next, $param1)
{
return '<P:V>' . $param1 . '<P:V/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function beforeW(Intercepted $subject, $param1)
{
return ['<P:bW/>'];
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundW(Intercepted $subject, \Closure $next, $param1)
{
return '<P:W>' . $param1 . '<P:W/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterW(Intercepted $subject, $result)
{
return '<P:aW/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function beforeX(Intercepted $subject, $param1)
{
return ['<P:bX/>'];
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundY(Intercepted $subject, \Closure $next, $param1)
{
return '<P:Y>' . $param1 . '<P:Y/>';
}

/**
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function afterZ(Intercepted $subject, $result)
{
return '<P:aZ/>';
}
}
Loading

0 comments on commit a68cc70

Please sign in to comment.