AbstractFactoryTestCase.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\TestFramework\Unit;
  7. /**
  8. * Framework for unit tests containing helper methods
  9. *
  10. * Number of fields is necessary because of the number of fields used by multiple layers
  11. * of parent classes.
  12. */
  13. abstract class AbstractFactoryTestCase extends \PHPUnit\Framework\TestCase
  14. {
  15. /**
  16. * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
  17. */
  18. protected $objectManager;
  19. /**
  20. * @var string
  21. */
  22. protected $factoryClassName;
  23. /**
  24. * @var string
  25. */
  26. protected $instanceClassName;
  27. /**
  28. * @var \Magento\Framework\ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject
  29. */
  30. protected $objectManagerMock;
  31. /**
  32. * @var object
  33. */
  34. protected $factory;
  35. /**
  36. * @return void
  37. */
  38. protected function setUp()
  39. {
  40. $this->objectManager = new Helper\ObjectManager($this);
  41. $this->objectManagerMock = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
  42. ->disableOriginalConstructor()
  43. ->getMock();
  44. $this->factory = $this->objectManager->getObject(
  45. $this->factoryClassName,
  46. ['objectManager' => $this->objectManagerMock]
  47. );
  48. }
  49. /**
  50. * @return void
  51. */
  52. public function testCreate()
  53. {
  54. $instanceMock = $this->getMockBuilder($this->instanceClassName)
  55. ->disableOriginalConstructor()
  56. ->getMock();
  57. $this->objectManagerMock->expects($this->once())
  58. ->method('create')
  59. ->will($this->returnValue($instanceMock));
  60. $this->assertSame($instanceMock, $this->factory->create());
  61. }
  62. }