1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Message\Test\Unit;
- class FactoryTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var \Magento\Framework\Message\Factory
- */
- protected $factory;
- /**
- * @var \PHPUnit_Framework_MockObject_MockObject
- */
- protected $objectManagerMock;
- protected function setUp()
- {
- $this->objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
- $this->factory = new \Magento\Framework\Message\Factory(
- $this->objectManagerMock
- );
- }
- /**
- * @expectedException \InvalidArgumentException
- * @expectedExceptionMessage Wrong message type
- */
- public function testCreateWithWrongTypeException()
- {
- $this->objectManagerMock->expects($this->never())->method('create');
- $this->factory->create('type', 'text');
- }
- public function testCreateWithWrongInterfaceImplementation()
- {
- $this->expectException('\InvalidArgumentException');
- $this->expectExceptionMessage(
- 'Magento\Framework\Message\Error doesn\'t implement \Magento\Framework\Message\MessageInterface'
- );
- $messageMock = new \stdClass();
- $type = 'error';
- $className = 'Magento\\Framework\\Message\\' . ucfirst($type);
- $this->objectManagerMock
- ->expects($this->once())
- ->method('create')
- ->with($className, ['text' => 'text'])
- ->will($this->returnValue($messageMock));
- $this->factory->create($type, 'text');
- }
- public function testSuccessfulCreateMessage()
- {
- $messageMock = $this->createMock(\Magento\Framework\Message\Success::class);
- $type = 'success';
- $className = 'Magento\\Framework\\Message\\' . ucfirst($type);
- $this->objectManagerMock
- ->expects($this->once())
- ->method('create')
- ->with($className, ['text' => 'text'])
- ->will($this->returnValue($messageMock));
- $this->assertEquals($messageMock, $this->factory->create($type, 'text'));
- }
- }
|