requestMock = $this->createMock(Http::class); $this->helperMock = $this->createMock(Data::class); $this->sessionHelperMock = $this->createMock(Session::class); $this->checkoutSessionMock = $this->getMockBuilder(\Magento\Checkout\Model\Session::class) ->addMethods(['setRememberMeChecked']) ->disableOriginalConstructor() ->getMock(); $this->observerMock = $this->createMock(Observer::class); $this->eventManagerMock = $this->getMockBuilder(Event::class) ->addMethods(['getRequest']) ->disableOriginalConstructor() ->getMock(); $this->model = new SetRememberMeCheckedStatusObserver( $this->helperMock, $this->sessionHelperMock, $this->checkoutSessionMock ); } public function testSetRememberMeCheckedStatusWhenPersistentDataCannotProcess() { $this->helperMock ->expects($this->once()) ->method('canProcess') ->with($this->observerMock) ->willReturn(false); $this->helperMock->expects($this->never())->method('isEnabled'); $this->observerMock->expects($this->never())->method('getEvent'); $this->model->execute($this->observerMock); } public function testSetRememberMeCheckedStatusWhenPersistentDataCanProcess() { $rememberMeCheckbox = 1; $this->helperMock ->expects($this->once()) ->method('canProcess') ->with($this->observerMock) ->willReturn(true); $this->helperMock->expects($this->once())->method('isEnabled')->willReturn(true); $this->helperMock->expects($this->once())->method('isRememberMeEnabled')->willReturn(true); $this->observerMock ->expects($this->once()) ->method('getEvent') ->willReturn($this->eventManagerMock); $this->eventManagerMock ->expects($this->once()) ->method('getRequest') ->willReturn($this->requestMock); $this->requestMock ->expects($this->once()) ->method('getPost') ->with('persistent_remember_me') ->willReturn($rememberMeCheckbox); $this->sessionHelperMock ->expects($this->once()) ->method('setRememberMeChecked') ->with((bool)$rememberMeCheckbox); $this->requestMock ->expects($this->once()) ->method('getFullActionName') ->willReturn('checkout_onepage_saveBilling'); $this->checkoutSessionMock ->expects($this->once()) ->method('setRememberMeChecked') ->with((bool)$rememberMeCheckbox); $this->model->execute($this->observerMock); } public function testSetRememberMeCheckedStatusWhenActionNameIncorrect() { $rememberMeCheckbox = 1; $this->helperMock ->expects($this->once()) ->method('canProcess') ->with($this->observerMock) ->willReturn(true); $this->helperMock->expects($this->once())->method('isEnabled')->willReturn(true); $this->helperMock->expects($this->once())->method('isRememberMeEnabled')->willReturn(true); $this->observerMock ->expects($this->once()) ->method('getEvent') ->willReturn($this->eventManagerMock); $this->eventManagerMock ->expects($this->once()) ->method('getRequest') ->willReturn($this->requestMock); $this->requestMock ->expects($this->once()) ->method('getPost') ->with('persistent_remember_me') ->willReturn($rememberMeCheckbox); $this->sessionHelperMock ->expects($this->once()) ->method('setRememberMeChecked') ->with((bool)$rememberMeCheckbox); $this->requestMock ->expects($this->exactly(2)) ->method('getFullActionName') ->willReturn('method_name'); $this->checkoutSessionMock ->expects($this->never()) ->method('setRememberMeChecked'); $this->model->execute($this->observerMock); } public function testSetRememberMeCheckedStatusWhenRequestNotExist() { $this->helperMock ->expects($this->once()) ->method('canProcess') ->with($this->observerMock) ->willReturn(true); $this->helperMock->expects($this->once())->method('isEnabled')->willReturn(true); $this->helperMock->expects($this->once())->method('isRememberMeEnabled')->willReturn(true); $this->observerMock ->expects($this->once()) ->method('getEvent') ->willReturn($this->eventManagerMock); $this->eventManagerMock ->expects($this->once()) ->method('getRequest'); $this->model->execute($this->observerMock); } }