SaveHandlerFactoryTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Session\Test\Unit;
  7. use \Magento\Framework\Session\SaveHandlerFactory;
  8. class SaveHandlerFactoryTest extends \PHPUnit\Framework\TestCase
  9. {
  10. /**
  11. * @dataProvider createDataProvider
  12. */
  13. public function testCreate($handlers, $saveClass, $saveMethod)
  14. {
  15. $saveHandler = $this->createMock($saveClass);
  16. $objectManager = $this->createPartialMock(\Magento\Framework\ObjectManager\ObjectManager::class, ['create']);
  17. $objectManager->expects(
  18. $this->once()
  19. )->method(
  20. 'create'
  21. )->with(
  22. $this->equalTo($saveClass),
  23. $this->equalTo([])
  24. )->will(
  25. $this->returnValue($saveHandler)
  26. );
  27. $model = new SaveHandlerFactory($objectManager, $handlers);
  28. $result = $model->create($saveMethod);
  29. $this->assertInstanceOf($saveClass, $result);
  30. $this->assertInstanceOf(\Magento\Framework\Session\SaveHandler\Native::class, $result);
  31. $this->assertInstanceOf('\SessionHandlerInterface', $result);
  32. }
  33. /**
  34. * @return array
  35. */
  36. public function createDataProvider()
  37. {
  38. return [[[], \Magento\Framework\Session\SaveHandler\Native::class, 'files']];
  39. }
  40. /**
  41. * @expectedException \LogicException
  42. * @expectedExceptionMessage Magento\Framework\Session\SaveHandler\Native doesn't implement \SessionHandlerInterface
  43. */
  44. public function testCreateInvalid()
  45. {
  46. $invalidSaveHandler = new \Magento\Framework\DataObject();
  47. $objectManager = $this->getMockBuilder(\Magento\Framework\ObjectManager\ObjectManager::class)
  48. ->disableOriginalConstructor()
  49. ->getMock();
  50. $objectManager->expects($this->once())
  51. ->method('create')
  52. ->willReturn($invalidSaveHandler);
  53. $model = new SaveHandlerFactory($objectManager, []);
  54. $model->create('files');
  55. }
  56. }