public function resolvesCallsCompareAndRemoveMatchingDefaultValues()
{
$defaultValues = ['foo' => 'bar'];
$routeValues = ['bar' => 'baz'];
$mockRoutePart = $this->createMock(Routing\RoutePartInterface::class);
$mockRoutePart->expects($this->any())->method('resolve')->will($this->returnValue(true));
$mockRoutePart->expects($this->any())->method('hasValue')->will($this->returnValue(false));
$mockRoutePart->expects($this->once())->method('getDefaultValue')->will($this->returnValue('defaultValue'));
/** @var Route|\PHPUnit_Framework_MockObject_MockObject $route */
$route = $this->getAccessibleMock(Routing\Route::class, ['compareAndRemoveMatchingDefaultValues']);
$route->setAppendExceedingArguments(true);
$this->inject($route, 'persistenceManager', $this->mockPersistenceManager);
$route->setUriPattern('foo');
$route->setDefaults($defaultValues);
$route->_set('isParsed', true);
$route->_set('routeParts', [$mockRoutePart]);
$route->expects($this->once())->method('compareAndRemoveMatchingDefaultValues')->with($defaultValues, $routeValues)->will($this->returnValue(true));
$this->assertTrue($route->resolves($routeValues));
}