Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GenerateTest.php
Go to the documentation of this file.
1 <?php
7 
11 
15 class GenerateTest extends \PHPUnit\Framework\TestCase
16 {
18  protected $model;
19 
22 
24  protected $contextMock;
25 
27  protected $registryMock;
28 
30  private $requestMock;
31 
33  private $messageManager;
34 
36  private $responseMock;
37 
39  protected $fileFactoryMock;
40 
42  private $view;
43 
45  protected $dateMock;
46 
48  private $objectManagerMock;
49 
51  private $couponGenerator;
52 
56  protected function setUp()
57  {
58  $this->contextMock = $this->getMockBuilder(\Magento\Backend\App\Action\Context::class)
59  ->disableOriginalConstructor()
60  ->getMock();
61  $this->requestMock = $this
62  ->getMockBuilder(\Magento\Framework\App\Request\Http::class)
63  ->disableOriginalConstructor()
64  ->getMock();
65  $this->responseMock = $this
66  ->getMockBuilder(\Magento\Framework\App\Response\Http::class)
67  ->disableOriginalConstructor()
68  ->getMock();
69  $this->messageManager = $this->createMock(\Magento\Framework\Message\ManagerInterface::class);
70  $this->objectManagerMock = $this->getMockBuilder(ObjectManager::class)
71  ->disableOriginalConstructor()
72  ->getMock();
73  $this->view = $this->createMock(\Magento\Framework\App\ViewInterface::class);
74  $this->contextMock->expects($this->once())
75  ->method('getView')
76  ->willReturn($this->view);
77  $this->contextMock->expects($this->once())
78  ->method('getMessageManager')
79  ->willReturn($this->messageManager);
80  $this->contextMock->expects($this->once())
81  ->method('getRequest')
82  ->willReturn($this->requestMock);
83  $this->contextMock->expects($this->once())
84  ->method('getObjectManager')
85  ->willReturn($this->objectManagerMock);
86  $this->contextMock->expects($this->once())
87  ->method('getResponse')
88  ->willReturn($this->responseMock);
89  $this->registryMock = $this->getMockBuilder(\Magento\Framework\Registry::class)
90  ->disableOriginalConstructor()
91  ->getMock();
92  $this->fileFactoryMock = $this->getMockBuilder(\Magento\Framework\App\Response\Http\FileFactory::class)
93  ->disableOriginalConstructor()
94  ->getMock();
95  $this->dateMock = $this->getMockBuilder(\Magento\Framework\Stdlib\DateTime\Filter\Date::class)
96  ->disableOriginalConstructor()
97  ->getMock();
98  $this->couponGenerator = $this->getMockBuilder(CouponGenerator::class)
99  ->disableOriginalConstructor()
100  ->getMock();
101 
102  $this->objectManagerHelper = new ObjectManagerHelper($this);
103  $this->model = $this->objectManagerHelper->getObject(
104  \Magento\SalesRule\Controller\Adminhtml\Promo\Quote\Generate::class,
105  [
106  'context' => $this->contextMock,
107  'coreRegistry' => $this->registryMock,
108  'fileFactory' => $this->fileFactoryMock,
109  'dateFilter' => $this->dateMock,
110  'couponGenerator' => $this->couponGenerator
111  ]
112  );
113  }
114 
118  public function testExecute()
119  {
120  $helperData = $this->getMockBuilder(\Magento\Framework\Json\Helper\Data::class)
121  ->disableOriginalConstructor()
122  ->getMock();
123  $this->objectManagerMock->expects($this->any())
124  ->method('get')
125  ->with(\Magento\Framework\Json\Helper\Data::class)
126  ->willReturn($helperData);
127  $requestData = [
128  'qty' => 2,
129  'length' => 10,
130  'rule_id' => 1
131  ];
132  $this->requestMock->expects($this->once())
133  ->method('isAjax')
134  ->willReturn(true);
135  $ruleMock = $this->getMockBuilder(\Magento\SalesRule\Model\Rule::class)
136  ->disableOriginalConstructor()
137  ->getMock();
138  $this->registryMock->expects($this->once())
139  ->method('registry')
140  ->willReturn($ruleMock);
141  $ruleMock->expects($this->once())
142  ->method('getId')
143  ->willReturn(1);
144  $this->requestMock->expects($this->once())
145  ->method('getParams')
146  ->willReturn($requestData);
147  $this->couponGenerator->expects($this->once())
148  ->method('generateCodes')
149  ->with($requestData)
150  ->willReturn(['some_data', 'some_data_2']);
151  $this->messageManager->expects($this->once())
152  ->method('addSuccessMessage');
153  $this->responseMock->expects($this->once())
154  ->method('representJson')
155  ->with();
156  $helperData->expects($this->once())
157  ->method('jsonEncode')
158  ->with([
159  'messages' => __('%1 coupon(s) have been generated.', 2)
160  ]);
161  $layout = $this->getMockBuilder(\Magento\Framework\View\Layout::class)
162  ->disableOriginalConstructor()
163  ->getMock();
164  $this->view->expects($this->any())
165  ->method('getLayout')
166  ->willReturn($layout);
167  $messageBlock = $this->getMockBuilder(\Magento\Framework\View\Element\Messages::class)
168  ->disableOriginalConstructor()
169  ->getMock();
170  $layout->expects($this->once())
171  ->method('initMessages');
172  $layout->expects($this->once())
173  ->method('getMessagesBlock')
174  ->willReturn($messageBlock);
175  $messageBlock->expects($this->once())
176  ->method('getGroupedHtml')
177  ->willReturn(__('%1 coupon(s) have been generated.', 2));
178  $this->model->execute();
179  }
180 }
__()
Definition: __.php:13