Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CodeTest.php
Go to the documentation of this file.
1 <?php
7 
8 class CodeTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $_codeModelMock;
14 
18  protected $_helper;
19 
20  protected function setUp()
21  {
22  $this->_codeModelMock = $this->createMock(\Magento\GoogleOptimizer\Model\Code::class);
23 
24  $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
25  $this->_helper = $objectManagerHelper->getObject(
26  \Magento\GoogleOptimizer\Helper\Code::class,
27  ['code' => $this->_codeModelMock]
28  );
29  }
30 
32  {
33  $categoryMock = $this->createMock(\Magento\Catalog\Model\Category::class);
34 
35  $categoryId = 1;
36  $storeId = 1;
37 
38  $categoryMock->expects($this->exactly(2))->method('getId')->will($this->returnValue($categoryId));
39  $categoryMock->expects($this->once())->method('getStoreId')->will($this->returnValue($storeId));
40  $this->_codeModelMock->expects(
41  $this->once()
42  )->method(
43  'loadByEntityIdAndType'
44  )->with(
45  $categoryId,
46  \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_CATEGORY,
47  $storeId
48  );
49 
50  $this->assertEquals(
51  $this->_codeModelMock,
52  $this->_helper->getCodeObjectByEntity(
53  $categoryMock,
54  \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_CATEGORY
55  )
56  );
57  }
58 
60  {
61  $productMock = $this->createMock(\Magento\Catalog\Model\Product::class);
62 
63  $categoryId = 1;
64  $storeId = 1;
65 
66  $productMock->expects($this->exactly(2))->method('getId')->will($this->returnValue($categoryId));
67  $productMock->expects($this->once())->method('getStoreId')->will($this->returnValue($storeId));
68  $this->_codeModelMock->expects(
69  $this->once()
70  )->method(
71  'loadByEntityIdAndType'
72  )->with(
73  $categoryId,
74  \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PRODUCT,
75  $storeId
76  );
77 
78  $this->assertEquals(
79  $this->_codeModelMock,
80  $this->_helper->getCodeObjectByEntity(
81  $productMock,
82  \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PRODUCT
83  )
84  );
85  }
86 
87  public function testLoadingCodeForPageEntity()
88  {
89  $pageMock = $this->createMock(\Magento\Cms\Model\Page::class);
90 
91  $categoryId = 1;
92 
93  $pageMock->expects($this->exactly(2))->method('getId')->will($this->returnValue($categoryId));
94  $this->_codeModelMock->expects(
95  $this->once()
96  )->method(
97  'loadByEntityIdAndType'
98  )->with(
99  $categoryId,
100  \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PAGE
101  );
102 
103  $this->assertEquals(
104  $this->_codeModelMock,
105  $this->_helper->getCodeObjectByEntity($pageMock, \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PAGE)
106  );
107  }
108 
114  {
115  $entity = $this->createMock(\Magento\Cms\Model\Block::class);
116 
117  $entityId = 1;
118 
119  $entity->expects($this->exactly(2))->method('getId')->will($this->returnValue($entityId));
120  $this->_codeModelMock->expects($this->never())->method('loadByEntityIdAndType');
121 
122  $this->assertEquals(
123  $this->_codeModelMock,
124  $this->_helper->getCodeObjectByEntity($entity, \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PAGE)
125  );
126  }
127 
132  public function testExceptionEmptyEntity()
133  {
134  $entity = $this->createMock(\Magento\Cms\Model\Block::class);
135 
136  $entityId = 0;
137 
138  $entity->expects($this->exactly(1))->method('getId')->will($this->returnValue($entityId));
139  $this->_codeModelMock->expects($this->never())->method('loadByEntityIdAndType');
140 
141  $this->assertEquals(
142  $this->_codeModelMock,
143  $this->_helper->getCodeObjectByEntity($entity, \Magento\GoogleOptimizer\Model\Code::ENTITY_TYPE_PAGE)
144  );
145  }
146 }
$entity
Definition: element.phtml:22