context = $this->createMock(\Magento\Framework\View\Element\Template\Context::class); $this->orderCollectionFactory = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\CollectionFactory::class) ->disableOriginalConstructor()->setMethods(['create'])->getMock(); $this->orderCollectionFactoryInterface = $this->getMockBuilder(\Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface::class) ->disableOriginalConstructor()->setMethods(['create'])->getMock(); $this->objectManager = $this->createMock(\Magento\Framework\ObjectManagerInterface::class); $this->objectManager->expects($this->any()) ->method('get') ->will($this->returnValue($this->orderCollectionFactoryInterface)); \Magento\Framework\App\ObjectManager::setInstance($this->objectManager); $this->customerSession = $this->getMockBuilder(\Magento\Customer\Model\Session::class) ->setMethods(['getCustomerId'])->disableOriginalConstructor()->getMock(); $this->orderConfig = $this->getMockBuilder(\Magento\Sales\Model\Order\Config::class) ->setMethods(['getVisibleOnFrontStatuses'])->disableOriginalConstructor()->getMock(); $this->pageConfig = $this->getMockBuilder(\Magento\Framework\View\Page\Config::class) ->disableOriginalConstructor()->getMock(); $this->pageTitleMock = $this->getMockBuilder(\Magento\Framework\View\Page\Title::class) ->disableOriginalConstructor() ->getMock(); } public function testConstructMethod() { $data = []; $customerId = 25; $this->customerSession->expects($this->once()) ->method('getCustomerId') ->will($this->returnValue($customerId)); $statuses = ['pending', 'processing', 'comlete']; $this->orderConfig->expects($this->once()) ->method('getVisibleOnFrontStatuses') ->will($this->returnValue($statuses)); $orderCollection = $this->createPartialMock( \Magento\Sales\Model\ResourceModel\Order\Collection::class, ['addFieldToSelect', 'addFieldToFilter', 'setOrder'] ); $this->context->expects($this->any()) ->method('getPageConfig') ->willReturn($this->pageConfig); $orderCollection->expects($this->at(0)) ->method('addFieldToSelect') ->with($this->equalTo('*')) ->will($this->returnSelf()); $orderCollection->expects($this->at(1)) ->method('addFieldToFilter') ->with('status', $this->equalTo(['in' => $statuses])) ->will($this->returnSelf()); $orderCollection->expects($this->at(2)) ->method('setOrder') ->with('created_at', 'desc') ->will($this->returnSelf()); $this->orderCollectionFactoryInterface->expects($this->atLeastOnce()) ->method('create') ->will($this->returnValue($orderCollection)); $this->pageConfig->expects($this->atLeastOnce()) ->method('getTitle') ->willReturn($this->pageTitleMock); $this->pageTitleMock->expects($this->atLeastOnce()) ->method('set') ->willReturnSelf(); $this->model = new \Magento\Sales\Block\Order\History( $this->context, $this->orderCollectionFactory, $this->customerSession, $this->orderConfig, $data ); $this->assertEquals($orderCollection, $this->model->getOrders()); } }