public function setUp()
{
$this->dispatcher = $this->getMockBuilder(Dispatcher::class)->disableOriginalConstructor()->setMethods(['resolveController'])->getMock();
$this->mockActionRequest = $this->getMockBuilder(ActionRequest::class)->disableOriginalConstructor()->getMock();
$this->mockActionRequest->expects($this->any())->method('isMainRequest')->will($this->returnValue(false));
$this->mockParentRequest = $this->getMockBuilder(ActionRequest::class)->disableOriginalConstructor()->getMock();
$this->mockActionRequest->expects($this->any())->method('getParentRequest')->will($this->returnValue($this->mockParentRequest));
$this->mockMainRequest = $this->getMockBuilder(ActionRequest::class)->disableOriginalConstructor()->getMock();
$this->mockActionRequest->expects($this->any())->method('getMainRequest')->will($this->returnValue($this->mockMainRequest));
$this->mockHttpRequest = $this->getMockBuilder(HttpRequest::class)->disableOriginalConstructor()->getMock();
$this->mockActionRequest->expects($this->any())->method('getHttpRequest')->will($this->returnValue($this->mockHttpRequest));
$this->mockHttpResponse = $this->getMockBuilder(HttpResponse::class)->disableOriginalConstructor()->getMock();
$this->mockController = $this->getMockBuilder(ControllerInterface::class)->setMethods(['processRequest'])->getMock();
$this->dispatcher->expects($this->any())->method('resolveController')->will($this->returnValue($this->mockController));
$this->mockSecurityContext = $this->getMockBuilder(Context::class)->disableOriginalConstructor()->getMock();
$this->mockFirewall = $this->getMockBuilder(FirewallInterface::class)->getMock();
$this->mockSecurityLogger = $this->getMockBuilder(SecurityLoggerInterface::class)->getMock();
$this->mockObjectManager = $this->getMockBuilder(ObjectManagerInterface::class)->getMock();
$this->mockObjectManager->expects($this->any())->method('get')->will($this->returnCallback(function ($className) {
if ($className === Context::class) {
return $this->mockSecurityContext;
} elseif ($className === FirewallInterface::class) {
return $this->mockFirewall;
} elseif ($className === SecurityLoggerInterface::class) {
return $this->mockSecurityLogger;
}
return null;
}));
$this->inject($this->dispatcher, 'objectManager', $this->mockObjectManager);
}