Returns runtime evaluations for the pointcut.
public getRuntimeEvaluationsDefinition ( ) : array | ||
return | array | Runtime evaluations |
/** * @test */ public function getRuntimeEvaluationsDefintionReturnsTheEvaluationsFromAllContainedFiltersThatMatchedThePointcutWithTheCorrectOperators() { $runtimeEvaluations1 = ['methodArgumentConstraint' => ['arg1' => 'eval1']]; $runtimeEvaluations2 = ['methodArgumentConstraint' => ['arg2' => 'eval2']]; $runtimeEvaluations3 = ['methodArgumentConstraint' => ['arg3' => 'eval3']]; $runtimeEvaluations4 = ['methodArgumentConstraint' => ['arg4' => 'eval4']]; $runtimeEvaluations5 = ['methodArgumentConstraint' => ['arg5' => 'eval5', 'arg6' => 'eval6']]; $mockPointcutFilter1 = $this->getMockBuilder(Pointcut\PointcutFilterInterface::class)->disableOriginalConstructor()->getMock(); $mockPointcutFilter1->expects($this->once())->method('getRuntimeEvaluationsDefinition')->will($this->returnValue($runtimeEvaluations1)); $mockPointcutFilter1->expects($this->any())->method('matches')->will($this->returnValue(true)); $mockPointcutFilter1->expects($this->any())->method('hasRuntimeEvaluationsDefinition')->will($this->returnValue(true)); $mockPointcutFilter2 = $this->getMockBuilder(Pointcut\PointcutFilterInterface::class)->disableOriginalConstructor()->getMock(); $mockPointcutFilter2->expects($this->once())->method('getRuntimeEvaluationsDefinition')->will($this->returnValue($runtimeEvaluations2)); $mockPointcutFilter2->expects($this->any())->method('matches')->will($this->returnValue(false)); $mockPointcutFilter2->expects($this->any())->method('hasRuntimeEvaluationsDefinition')->will($this->returnValue(true)); $mockPointcutFilter3 = $this->getMockBuilder(Pointcut\PointcutFilterInterface::class)->disableOriginalConstructor()->getMock(); $mockPointcutFilter3->expects($this->once())->method('getRuntimeEvaluationsDefinition')->will($this->returnValue($runtimeEvaluations3)); $mockPointcutFilter3->expects($this->any())->method('matches')->will($this->returnValue(true)); $mockPointcutFilter3->expects($this->any())->method('hasRuntimeEvaluationsDefinition')->will($this->returnValue(true)); $mockPointcutFilter4 = $this->getMockBuilder(Pointcut\PointcutFilterInterface::class)->disableOriginalConstructor()->getMock(); $mockPointcutFilter4->expects($this->once())->method('getRuntimeEvaluationsDefinition')->will($this->returnValue($runtimeEvaluations4)); $mockPointcutFilter4->expects($this->any())->method('matches')->will($this->returnValue(true)); $mockPointcutFilter4->expects($this->any())->method('hasRuntimeEvaluationsDefinition')->will($this->returnValue(true)); $mockPointcutFilter5 = $this->getMockBuilder(Pointcut\PointcutFilterInterface::class)->disableOriginalConstructor()->getMock(); $mockPointcutFilter5->expects($this->once())->method('getRuntimeEvaluationsDefinition')->will($this->returnValue($runtimeEvaluations5)); $mockPointcutFilter5->expects($this->any())->method('matches')->will($this->returnValue(true)); $mockPointcutFilter5->expects($this->any())->method('hasRuntimeEvaluationsDefinition')->will($this->returnValue(true)); $pointcutFilterComposite = new Pointcut\PointcutFilterComposite(); $pointcutFilterComposite->addFilter('&&', $mockPointcutFilter1); $pointcutFilterComposite->addFilter('&&!', $mockPointcutFilter2); $pointcutFilterComposite->addFilter('||', $mockPointcutFilter3); $pointcutFilterComposite->addFilter('||!', $mockPointcutFilter4); $pointcutFilterComposite->addFilter('||!', $mockPointcutFilter5); $expectedRuntimeEvaluations = ['&&' => ['methodArgumentConstraint' => ['arg1' => 'eval1']], '||' => ['methodArgumentConstraint' => ['arg3' => 'eval3']], '||!' => ['methodArgumentConstraint' => ['arg4' => 'eval4', 'arg5' => 'eval5', 'arg6' => 'eval6']]]; $pointcutFilterComposite->matches('className', 'methodName', 'methodDeclaringClassName', 1); $this->assertEquals($expectedRuntimeEvaluations, $pointcutFilterComposite->getRuntimeEvaluationsDefinition()); }
/** * Returns runtime evaluations for the pointcut. * * @return array Runtime evaluations */ public function getRuntimeEvaluationsDefinition() { return $this->pointcutFilterComposite->getRuntimeEvaluationsDefinition(); }