public function processRequestShouldSetWidgetConfiguration()
{
/** @var \Neos\Flow\Mvc\ActionRequest $mockActionRequest */
$mockActionRequest = $this->createMock(\Neos\Flow\Mvc\ActionRequest::class);
$mockResponse = $this->createMock(\Neos\Flow\Http\Response::class);
$httpRequest = Request::create(new Uri('http://localhost'));
$mockActionRequest->expects($this->any())->method('getHttpRequest')->will($this->returnValue($httpRequest));
$expectedWidgetConfiguration = array('foo' => uniqid());
$widgetContext = new WidgetContext();
$widgetContext->setAjaxWidgetConfiguration($expectedWidgetConfiguration);
$mockActionRequest->expects($this->atLeastOnce())->method('getInternalArgument')->with('__widgetContext')->will($this->returnValue($widgetContext));
$abstractWidgetController = $this->getAccessibleMock(\Neos\FluidAdaptor\Core\Widget\AbstractWidgetController::class, array('resolveActionMethodName', 'initializeActionMethodArguments', 'initializeActionMethodValidators', 'mapRequestArgumentsToControllerArguments', 'detectFormat', 'resolveView', 'callActionMethod'));
$abstractWidgetController->_set('mvcPropertyMappingConfigurationService', $this->createMock(\Neos\Flow\Mvc\Controller\MvcPropertyMappingConfigurationService::class));
$abstractWidgetController->processRequest($mockActionRequest, $mockResponse);
$actualWidgetConfiguration = $abstractWidgetController->_get('widgetConfiguration');
$this->assertEquals($expectedWidgetConfiguration, $actualWidgetConfiguration);
}