Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ScopeTreeProviderTest.php
Go to the documentation of this file.
1 <?php
7 
18 
19 class ScopeTreeProviderTest extends \PHPUnit\Framework\TestCase
20 {
22  protected $model;
23 
25  protected $storeManagerMock;
26 
27  protected function setUp()
28  {
29  $this->storeManagerMock = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class)
30  ->getMockForAbstractClass();
31 
32  $this->model = new ScopeTreeProvider($this->storeManagerMock);
33  }
34 
35  public function testGet()
36  {
37  $websiteId = 1;
38  $groupId = 2;
39  $storeId = 3;
40  $storeData = [
42  'scope_id' => $storeId,
43  'scopes' => [],
44  ];
45  $groupData = [
46  'scope' => ScopeInterface::SCOPE_GROUP,
47  'scope_id' => $groupId,
48  'scopes' => [$storeData, $storeData, $storeData],
49  ];
50  $websiteData = [
52  'scope_id' => $websiteId,
53  'scopes' => [$groupData, $groupData],
54  ];
55  $result = [
57  'scope_id' => null,
58  'scopes' => [$websiteData],
59  ];
60 
62  $websiteMock = $this->getMockBuilder(\Magento\Store\Model\Website::class)
63  ->disableOriginalConstructor()
64  ->getMock();
65  $websiteMock->expects($this->any())
66  ->method('getId')
67  ->willReturn($websiteId);
68 
70  $groupMock = $this->getMockBuilder(\Magento\Store\Model\Group::class)
71  ->disableOriginalConstructor()
72  ->getMock();
73  $groupMock->expects($this->any())
74  ->method('getId')
75  ->willReturn($groupId);
76 
78  $storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class)
79  ->disableOriginalConstructor()
80  ->getMock();
81  $storeMock->expects($this->any())
82  ->method('getId')
83  ->willReturn($storeId);
84 
85  $this->storeManagerMock->expects($this->any())
86  ->method('getWebsites')
87  ->willReturn([$websiteMock]);
88 
89  $websiteMock->expects($this->any())
90  ->method('getGroups')
91  ->willReturn([$groupMock, $groupMock]);
92 
93  $groupMock->expects($this->any())
94  ->method('getStores')
95  ->willReturn([$storeMock, $storeMock, $storeMock]);
96 
97  $this->assertEquals($result, $this->model->get());
98  }
99 }