public function testGetSectionData()
 {
     $msgType = 'error';
     $msgText = 'All is lost';
     $msg = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMock();
     $messages = [$msg];
     $msgCollection = $this->getMockBuilder('Magento\\Framework\\Message\\Collection')->getMock();
     $msg->expects($this->once())->method('getType')->willReturn($msgType);
     $this->messageInterpretationStrategy->expects(static::once())->method('interpret')->with($msg)->willReturn($msgText);
     $this->messageManager->expects($this->once())->method('getMessages')->with(true, null)->willReturn($msgCollection);
     $msgCollection->expects($this->once())->method('getItems')->willReturn($messages);
     $this->assertEquals(['messages' => [['type' => $msgType, 'text' => $msgText]]], $this->object->getSectionData());
 }
 public function testAfterRenderResultWithWrongArray()
 {
     $messageType = 'message1type';
     $messageText = 'message1text';
     $messages = [['type' => $messageType, 'text' => $messageText]];
     /** @var Redirect|\PHPUnit_Framework_MockObject_MockObject $resultMock */
     $resultMock = $this->getMockBuilder(Redirect::class)->disableOriginalConstructor()->getMock();
     /** @var PublicCookieMetadata|\PHPUnit_Framework_MockObject_MockObject $cookieMetadataMock */
     $cookieMetadataMock = $this->getMockBuilder(PublicCookieMetadata::class)->disableOriginalConstructor()->getMock();
     $this->cookieMetadataFactoryMock->expects($this->once())->method('createPublicCookieMetadata')->willReturn($cookieMetadataMock);
     $this->cookieManagerMock->expects($this->once())->method('setPublicCookie')->with(MessagePlugin::MESSAGES_COOKIES_NAME, \Zend_Json::encode($messages), $cookieMetadataMock);
     $this->cookieManagerMock->expects($this->once())->method('getCookie')->with(MessagePlugin::MESSAGES_COOKIES_NAME, \Zend_Json::encode([]))->willReturn(\Zend_Json::encode('string'));
     $this->dataMock->expects($this->any())->method('jsonDecode')->willReturnCallback(function ($data) {
         return \Zend_Json::decode($data);
     });
     $this->dataMock->expects($this->any())->method('jsonEncode')->willReturnCallback(function ($data) {
         return \Zend_Json::encode($data);
     });
     /** @var MessageInterface|\PHPUnit_Framework_MockObject_MockObject $messageMock */
     $messageMock = $this->getMockBuilder(MessageInterface::class)->getMock();
     $messageMock->expects($this->once())->method('getType')->willReturn($messageType);
     $this->interpretationStrategyMock->expects($this->once())->method('interpret')->with($messageMock)->willReturn($messageText);
     /** @var Collection|\PHPUnit_Framework_MockObject_MockObject $collectionMock */
     $collectionMock = $this->getMockBuilder(Collection::class)->disableOriginalConstructor()->getMock();
     $collectionMock->expects($this->once())->method('getItems')->willReturn([$messageMock]);
     $this->managerMock->expects($this->once())->method('getMessages')->with(true, null)->willReturn($collectionMock);
     $this->assertEquals($resultMock, $this->model->afterRenderResult($resultMock, $resultMock));
 }
 public function testGetGroupedHtml()
 {
     $this->messages->setNameInLayout('nameInLayout');
     $resultHtml = '<div class="messages">';
     $resultHtml .= '<div class="message message-error error"><div data-ui-id="nameinlayout-message-error" >';
     $resultHtml .= 'Error message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-warning warning"><div data-ui-id="nameinlayout-message-warning" >';
     $resultHtml .= 'Warning message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-warning warning"><div data-ui-id="nameinlayout-message-warning" >';
     $resultHtml .= 'Warning message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
     $resultHtml .= 'Notice message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
     $resultHtml .= 'Notice message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-notice notice"><div data-ui-id="nameinlayout-message-notice" >';
     $resultHtml .= 'Notice message without HTML!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '<div class="message message-success success"><div data-ui-id="nameinlayout-message-success" >';
     $resultHtml .= 'Success message with <strong>HTML</strong>!';
     $resultHtml .= '</div></div>';
     $resultHtml .= '</div>';
     $errorMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $warningMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $noticeMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $successMock = $this->getMockBuilder('Magento\\Framework\\Message\\MessageInterface')->getMockForAbstractClass();
     $this->messageInterpretationStrategy->expects(static::any())->method('interpret')->willReturnMap([[$errorMock, 'Error message without HTML!'], [$warningMock, 'Warning message with <strong>HTML</strong>!'], [$noticeMock, 'Notice message without HTML!'], [$successMock, 'Success message with <strong>HTML</strong>!']]);
     $collectionMock = $this->initMessageCollection();
     $collectionMock->expects($this->exactly(4))->method('getItemsByType')->willReturnMap([[MessageInterface::TYPE_ERROR, [$errorMock]], [MessageInterface::TYPE_WARNING, [$warningMock, $warningMock]], [MessageInterface::TYPE_NOTICE, [$noticeMock, $noticeMock, $noticeMock]], [MessageInterface::TYPE_SUCCESS, [$successMock, $successMock, $successMock, $successMock]]]);
     $this->assertEquals($resultHtml, $this->messages->getGroupedHtml());
 }