SourceTest.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Test\Unit\App\Scope;
  7. use Magento\Framework\App\Scope\Source;
  8. use Magento\Framework\App\ScopeInterface;
  9. use Magento\Framework\App\ScopeResolverInterface;
  10. use Magento\Framework\App\ScopeResolverPool;
  11. class SourceTest extends \PHPUnit\Framework\TestCase
  12. {
  13. /** @var Source */
  14. protected $model;
  15. /** @var ScopeResolverPool|\PHPUnit_Framework_MockObject_MockObject */
  16. protected $scopeResolverPoolMock;
  17. /** @var string */
  18. protected $scope = 'scope';
  19. protected function setUp()
  20. {
  21. $this->scopeResolverPoolMock = $this->getMockBuilder(\Magento\Framework\App\ScopeResolverPool::class)
  22. ->disableOriginalConstructor()
  23. ->getMock();
  24. $this->model = new Source($this->scopeResolverPoolMock, $this->scope);
  25. }
  26. public function testToOptionArray()
  27. {
  28. $scopeId = 1;
  29. $scopeName = 'Scope Name';
  30. $scopeData = [
  31. 'value' => $scopeId,
  32. 'label' => $scopeName,
  33. ];
  34. $result = [$scopeData, $scopeData];
  35. /** @var ScopeResolverInterface|\PHPUnit_Framework_MockObject_MockObject $scopeResolverMock */
  36. $scopeResolverMock = $this->getMockBuilder(\Magento\Framework\App\ScopeResolverInterface::class)
  37. ->getMockForAbstractClass();
  38. /** @var ScopeInterface|\PHPUnit_Framework_MockObject_MockObject $scopeMock */
  39. $scopeMock = $this->getMockBuilder(\Magento\Framework\App\ScopeInterface::class)
  40. ->getMockForAbstractClass();
  41. $this->scopeResolverPoolMock->expects($this->once())
  42. ->method('get')
  43. ->with($this->scope)
  44. ->willReturn($scopeResolverMock);
  45. $scopeResolverMock->expects($this->once())
  46. ->method('getScopes')
  47. ->willReturn([$scopeMock, $scopeMock]);
  48. $scopeMock->expects($this->exactly(2))
  49. ->method('getId')
  50. ->willReturn($scopeId);
  51. $scopeMock->expects($this->exactly(2))
  52. ->method('getName')
  53. ->willReturn($scopeName);
  54. $this->assertEquals($result, $this->model->toOptionArray());
  55. }
  56. }