15 private $sampleInterceptor;
20 private $samplePlugins;
25 private $pluginListMock;
29 $this->pluginListMock = $this->getMockBuilder(Interception\PluginListInterface::class)
30 ->getMockForAbstractClass();
33 $this->samplePlugins = [
40 $this->sampleInterceptor->setPluginList($this->pluginListMock);
45 $subjectType = Sample\Entity::class;
49 [$subjectType,
'plugin1', $this->samplePlugins[
'plugin1']],
50 [$subjectType,
'plugin2', $this->samplePlugins[
'plugin2']],
51 [$subjectType,
'plugin3', $this->samplePlugins[
'plugin3']],
52 [$subjectType,
'plugin4', $this->samplePlugins[
'plugin4']]
82 $expectedPluginCalls = [
83 Sample\Plugin1::class .
'::before' . $capMethod,
84 Sample\Plugin2::class .
'::before' . $capMethod,
85 Sample\Plugin3::class .
'::around' . $capMethod,
86 Sample\Plugin4::class .
'::before' . $capMethod,
87 Sample\Plugin4::class .
'::around' . $capMethod,
88 Sample\Entity::class .
'::' .
$method,
89 Sample\Plugin4::class .
'::after' . $capMethod,
90 Sample\Plugin1::class .
'::after' . $capMethod,
91 Sample\Plugin2::class .
'::after' . $capMethod,
92 Sample\Plugin3::class .
'::after' . $capMethod
95 $this->pluginListMock->expects(static::any())
97 ->willReturnMap($pluginMap);
98 $this->pluginListMock->expects(static::exactly(3))
100 ->willReturnMap($pluginInfoMap);
102 $this->assertTrue($this->sampleInterceptor->$method());
103 $this->assertEquals($expectedPluginCalls, $this->sampleInterceptor->getPluginCalls());