public function matchesDetectsCircularMatchesAndThrowsAndException()
{
$pointcutExpression = 'ThePointcutExpression';
$aspectClassName = 'TheAspect';
$className = 'TheClass';
$methodName = 'TheMethod';
$mockPointcutFilterComposite = $this->getMockBuilder(Pointcut\PointcutFilterComposite::class)->disableOriginalConstructor()->setMethods(['matches'])->getMock();
$pointcut = $this->getMockBuilder(Pointcut\Pointcut::class)->setMethods(['dummy'])->setConstructorArgs([$pointcutExpression, $mockPointcutFilterComposite, $aspectClassName])->getMock();
for ($i = -1; $i <= Pointcut\Pointcut::MAXIMUM_RECURSIONS; $i++) {
$pointcut->matches($className, $methodName, $className, 1);
}
}