Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
DwstreeTest.php
Go to the documentation of this file.
1 <?php
7 
8 class DwstreeTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $object;
14 
18  protected $requestMock;
19 
23  protected $storeManagerMock;
24 
28  protected $websiteMock;
29 
33  protected $storeMock;
34 
38  protected $context;
39 
40  protected function setUp()
41  {
42  $this->requestMock = $this->getMockBuilder(\Magento\Framework\App\RequestInterface::class)
43  ->disableOriginalConstructor()
44  ->getMock();
45 
46  $this->storeManagerMock = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class)
47  ->disableOriginalConstructor()
48  ->getMock();
49 
50  $this->websiteMock = $this->getMockBuilder(\Magento\Store\Model\Website::class)
51  ->disableOriginalConstructor()
52  ->getMock();
53 
54  $this->storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class)
55  ->disableOriginalConstructor()
56  ->getMock();
57 
58  $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
59 
60  $this->context = $objectManager->getObject(
61  \Magento\Backend\Block\Template\Context::class,
62  [
63  'request' => $this->requestMock,
64  'storeManager' => $this->storeManagerMock,
65  ]
66  );
67 
68  $this->object = $objectManager->getObject(
69  \Magento\Config\Block\System\Config\Dwstree::class,
70  ['context' => $this->context]
71  );
72  }
73 
80  public function testInitTabs($section, $website, $store)
81  {
82  $this->requestMock->expects($this->any())
83  ->method('getParam')
84  ->will(
85  $this->returnValueMap(
86  [
87  ['section', $section],
88  ['website', $website['expected']['code']],
89  ['store', $store['expected']['code']],
90  ]
91  )
92  );
93  $this->storeManagerMock->expects($this->once())
94  ->method('getWebsites')
95  ->willReturn([$this->websiteMock]);
96  $this->websiteMock->expects($this->any())
97  ->method('getCode')
98  ->willReturn($website['actual']['code']);
99  $this->websiteMock->expects($this->any())
100  ->method('getName')
101  ->willReturn($website['expected']['name']);
102  $this->websiteMock->expects($this->once())
103  ->method('getStores')
104  ->willReturn([$this->storeMock]);
105  $this->storeMock->expects($this->any())
106  ->method('getCode')
107  ->willReturn($store['actual']['code']);
108  $this->storeMock->expects($this->any())
109  ->method('getName')
110  ->willReturn($store['actual']['name']);
111 
112  $this->assertEquals($this->object, $this->object->initTabs());
113 
114  $this->assertEquals(
115  [
116  'default',
117  'website_' . $website['actual']['code'],
118  'store_' . $store['actual']['code']
119  ],
120  $this->object->getTabsIds()
121  );
122  }
123 
127  public function initTabsDataProvider()
128  {
129  return [
130  'matchAll' => [
131  'scope' => 'Test Scope',
132  'website' => [
133  'expected' => ['name' => 'Test Website Name', 'code' => 'Test Website Code'],
134  'actual' => ['name' => 'Test Website Name', 'code' => 'Test Website Code'],
135  ],
136  'store' => [
137  'expected' => ['name' => 'Test Store Name', 'code' => 'Test Store Code'],
138  'actual' => ['name' => 'Test Store Name', 'code' => 'Test Store Code'],
139  ],
140  ],
141  'matchStore' => [
142  'scope' => 'Test Scope',
143  'website' => [
144  'expected' => ['name' => 'Test Website Name', 'code' => 'Test Website Code'],
145  'actual' => ['name' => false, 'code' => false],
146  ],
147  'store' => [
148  'expected' => ['name' => 'Test Store Name', 'code' => 'Test Store Code'],
149  'actual' => ['name' => 'Test Store Name', 'code' => 'Test Store Code'],
150  ],
151  ],
152  'matchWebsite' => [
153  'scope' => 'Test Scope',
154  'website' => [
155  'expected' => ['name' => 'Test Website Name', 'code' => 'Test Website Code'],
156  'actual' => ['name' => 'Test Website Name', 'code' => 'Test Website Code'],
157  ],
158  'store' => [
159  'expected' => ['name' => 'Test Store Name', 'code' => 'Test Store Code'],
160  'actual' => ['name' => false, 'code' => false],
161  ],
162  ],
163  'noMatch' => [
164  'scope' => 'Test Scope',
165  'website' => [
166  'expected' => ['name' => 'Test Website Name', 'code' => 'Test Website Code'],
167  'actual' => ['name' => false, 'code' => false],
168  ],
169  'store' => [
170  'expected' => ['name' => 'Test Store Name', 'code' => 'Test Store Code'],
171  'actual' => ['name' => false, 'code' => false],
172  ],
173  ],
174  ];
175  }
176 }
$objectManager
Definition: bootstrap.php:17