IsActiveTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Cms\Test\Unit\Model\Page\Source;
  7. use Magento\Cms\Model\Page;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
  9. class IsActiveTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var Page|\PHPUnit_Framework_MockObject_MockObject
  13. */
  14. protected $cmsPageMock;
  15. /**
  16. * @var ObjectManager
  17. */
  18. protected $objectManagerHelper;
  19. /**
  20. * @var Page\Source\IsActive
  21. */
  22. protected $object;
  23. /**
  24. * {@inheritdoc}
  25. */
  26. protected function setUp()
  27. {
  28. $this->objectManagerHelper = new ObjectManager($this);
  29. $this->cmsPageMock = $this->getMockBuilder(\Magento\Cms\Model\Page::class)
  30. ->disableOriginalConstructor()
  31. ->setMethods(['getAvailableStatuses'])
  32. ->getMock();
  33. $this->object = $this->objectManagerHelper->getObject($this->getSourceClassName(), [
  34. 'cmsPage' => $this->cmsPageMock,
  35. ]);
  36. }
  37. /**
  38. * @return string
  39. */
  40. protected function getSourceClassName()
  41. {
  42. return \Magento\Cms\Model\Page\Source\IsActive::class;
  43. }
  44. /**
  45. * @param array $availableStatuses
  46. * @param array $expected
  47. * @return void
  48. * @dataProvider getAvailableStatusesDataProvider
  49. */
  50. public function testToOptionArray(array $availableStatuses, array $expected)
  51. {
  52. $this->cmsPageMock->expects($this->once())
  53. ->method('getAvailableStatuses')
  54. ->willReturn($availableStatuses);
  55. $this->assertSame($expected, $this->object->toOptionArray());
  56. }
  57. /**
  58. * @return array
  59. */
  60. public function getAvailableStatusesDataProvider()
  61. {
  62. return [
  63. [
  64. [],
  65. [],
  66. ],
  67. [
  68. ['testStatus' => 'testValue'],
  69. [['label' => 'testValue', 'value' => 'testStatus']],
  70. ],
  71. ];
  72. }
  73. }