/** * @test * @dataProvider matchRequestDataProvider */ public function matchRequestTests($uriPath, $pattern, $shouldMatch) { $mockActionRequest = $this->getMockBuilder(ActionRequest::class)->disableOriginalConstructor()->getMock(); $mockHttpRequest = $this->getMockBuilder(Request::class)->disableOriginalConstructor()->getMock(); $mockActionRequest->expects($this->atLeastOnce())->method('getHttpRequest')->will($this->returnValue($mockHttpRequest)); $mockUri = $this->getMockBuilder(Uri::class)->disableOriginalConstructor()->getMock(); $mockHttpRequest->expects($this->atLeastOnce())->method('getUri')->will($this->returnValue($mockUri)); $mockUri->expects($this->atLeastOnce())->method('getPath')->will($this->returnValue($uriPath)); $requestPattern = new UriPattern(['uriPattern' => $pattern]); if ($shouldMatch) { $this->assertTrue($requestPattern->matchRequest($mockActionRequest)); } else { $this->assertFalse($requestPattern->matchRequest($mockActionRequest)); } }