Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
All Data Structures Namespaces Files Functions Variables Pages
TMapTest.php
Go to the documentation of this file.
1 <?php
7 
10 
11 require_once __DIR__ . '/_files/TMap/TClass.php';
12 require_once __DIR__ . '/_files/TMap/TInterface.php';
13 
14 class TMapTest extends \PHPUnit\Framework\TestCase
15 {
19  private $om;
20 
24  private $omConfig;
25 
26  protected function setUp()
27  {
28  $this->om = $this->getMockBuilder(\Magento\Framework\ObjectManagerInterface::class)
29  ->getMockForAbstractClass();
30 
31  $this->omConfig = $this->getMockBuilder(\Magento\Framework\ObjectManager\ConfigInterface::class)
32  ->getMockForAbstractClass();
33  }
34 
35  public function testConstructor()
36  {
37  $tMap = $this->getSimpleInitialized(3);
38  static::assertEquals(3, $tMap->count());
39  }
40 
41  public function testRead()
42  {
43  $tMap = $this->getSimpleInitialized(3);
44  $this->om->expects(static::exactly(3))
45  ->method('create')
46  ->willReturnMap(
47  [
48  ['TClass', [], new \TClass()],
49  ['TInterface', [], new \TClass()],
50  ['TClassVirtual', [], new \TClass()]
51  ]
52  );
53 
54  foreach ($tMap as $instance) {
55  static::assertInstanceOf('\TInterface', $instance);
56  }
57  }
58 
62  public function testRemove()
63  {
64  $tMap = $this->getSimpleInitialized(3);
65 
66  static::assertEquals(3, $tMap->count());
67  foreach ($tMap as $key => $instance) {
68  unset($tMap[$key]);
69  }
70  static::assertEquals(0, $tMap->count());
71  }
72 
76  public function testEdit()
77  {
78  $expectedKeysOrder = [
79  'item',
80  4,
81  'item2',
82  5
83  ];
84  $tMap = $this->getSimpleInitialized(6);
85 
86  unset($tMap[0], $tMap[3]);
87 
88  $tMap[] = 'TClassVirtual';
89  $tMap['item2'] = 'TClass';
90  $tMap[] = 'TInterface';
91 
92  $this->om->expects(static::exactly(4))
93  ->method('create')
94  ->willReturnMap(
95  [
96  ['TClass', [], new \TClass()],
97  ['TInterface', [], new \TClass()],
98  ['TClassVirtual', [], new \TClass()]
99  ]
100  );
101 
102  $i = 0;
103  foreach ($tMap as $key => $item) {
104  static::assertEquals($expectedKeysOrder[$i], $key);
105  $i++;
106  }
107 
108  static::assertEquals(4, $tMap->count());
109  }
110 
117  private function getSimpleInitialized($exactlyCalls = 3)
118  {
126  $testClasses = [
127  0 => 'TClass',
128  'item' => 'TClassVirtual',
129  3 => 'TInterface'
130  ];
131 
132  $this->omConfig->expects(static::exactly($exactlyCalls))
133  ->method('getPreference')
134  ->willReturnMap(
135  [
136  ['TClass', 'TClass'],
137  ['TClassVirtual', 'TClassVirtual'],
138  ['TInterface', 'TClassVirtual']
139  ]
140  );
141  $this->omConfig->expects(static::exactly($exactlyCalls))
142  ->method('getInstanceType')
143  ->willReturnMap(
144  [
145  ['TClass', 'TClass'],
146  ['TClassVirtual', 'TClass']
147  ]
148  );
149 
150  return new TMap(
151  'TInterface',
152  $this->om,
153  $this->omConfig,
154  $testClasses,
155  function (ObjectManagerInterface $om, $objectName) {
156  return $om->create($objectName);
157  }
158  );
159  }
160 }
defined('TESTS_BP')||define('TESTS_BP' __DIR__
Definition: _bootstrap.php:60
$om
$i
Definition: gallery.phtml:31