public function matchesTellsIfTheSpecifiedRegularExpressionMatchesTheGivenClassName()
{
$className = 'Foo';
$methodName = 'bar';
$methodDeclaringClassName = 'Baz';
$pointcutQueryIdentifier = 42;
$mockPointcut = $this->getMockBuilder(Aop\Pointcut\Pointcut::class)->disableOriginalConstructor()->setMethods(['matches'])->getMock();
$mockPointcut->expects($this->once())->method('matches')->with($className, $methodName, $methodDeclaringClassName, $pointcutQueryIdentifier)->will($this->returnValue('the result'));
$mockProxyClassBuilder = $this->getMockBuilder(Aop\Builder\ProxyClassBuilder::class)->disableOriginalConstructor()->setMethods(['findPointcut'])->getMock();
$mockProxyClassBuilder->expects($this->once())->method('findPointcut')->with('Aspect', 'pointcut')->will($this->returnValue($mockPointcut));
$pointcutFilter = new Aop\Pointcut\PointcutFilter('Aspect', 'pointcut');
$pointcutFilter->injectProxyClassBuilder($mockProxyClassBuilder);
$this->assertSame('the result', $pointcutFilter->matches($className, $methodName, $methodDeclaringClassName, $pointcutQueryIdentifier));
}