public function testExecute() { $searchString = "simple"; $firstItemMock = $this->getMockBuilder('Magento\\Search\\Model\\Autocomplete\\Item')->disableOriginalConstructor()->setMockClassName('FirstItem')->setMethods(['toArray'])->getMock(); $secondItemMock = $this->getMockBuilder('Magento\\Search\\Model\\Autocomplete\\Item')->disableOriginalConstructor()->setMockClassName('SecondItem')->setMethods(['toArray'])->getMock(); $this->request->expects($this->once())->method('getParam')->with('q')->will($this->returnValue($searchString)); $this->autocomplete->expects($this->once())->method('getItems')->will($this->returnValue([$firstItemMock, $secondItemMock])); $this->resultJsonMock->expects($this->once())->method('setData')->willReturnSelf(); $this->assertSame($this->resultJsonMock, $this->controller->execute()); }
/** * @return void */ public function execute() { if (!$this->getRequest()->getParam('q', false)) { $this->getResponse()->setRedirect($this->_url->getBaseUrl()); return; } $autocompleteData = $this->autocomplete->getItems(); $responseData = []; foreach ($autocompleteData as $resultItem) { $responseData[] = $resultItem->toArray(); } $this->getResponse()->representJson(json_encode($responseData)); }
/** * @return \Magento\Framework\Controller\ResultInterface */ public function execute() { if (!$this->getRequest()->getParam('q', false)) { /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */ $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT); $resultRedirect->setUrl($this->_url->getBaseUrl()); return $resultRedirect; } $autocompleteData = $this->autocomplete->getItems(); $responseData = []; foreach ($autocompleteData as $resultItem) { $responseData[] = $resultItem->toArray(); } /** @var \Magento\Framework\Controller\Result\Json $resultJson */ $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON); $resultJson->setData($responseData); return $resultJson; }