Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
UploadCssTest.php
Go to the documentation of this file.
1 <?php
7 
9 {
11  protected $name = 'UploadCss';
12 
13  public function testExecute()
14  {
15  $serviceModel = $this->createMock(\Magento\Theme\Model\Uploader\Service::class);
16  $serviceModel->expects($this->once())
17  ->method('uploadCssFile')
18  ->with('css_file_uploader')
19  ->willReturn(['filename' => 'filename', 'content' => 'content']);
20 
21  $this->_objectManagerMock->expects($this->at(0))
22  ->method('get')
23  ->with(\Magento\Theme\Model\Uploader\Service::class)
24  ->willReturn($serviceModel);
25 
26  $jsonData = $this->createMock(\Magento\Framework\Json\Helper\Data::class);
27  $jsonData->expects($this->once())
28  ->method('jsonEncode')
29  ->with(['error' => false, 'content' => 'content'])
30  ->willReturn('{"filename":"filename","content":"content"}');
31 
32  $this->_objectManagerMock->expects($this->at(1))
33  ->method('get')
34  ->with(\Magento\Framework\Json\Helper\Data::class)
35  ->willReturn($jsonData);
36 
37  $this->response
38  ->expects($this->once())
39  ->method('representJson')
40  ->with('{"filename":"filename","content":"content"}');
41 
42  $this->_model->execute();
43  }
44 
46  {
47  $exception = new \Magento\Framework\Exception\LocalizedException(new \Magento\Framework\Phrase('Message'));
48  $serviceModel = $this->createMock(\Magento\Theme\Model\Uploader\Service::class);
49  $serviceModel->expects($this->once())
50  ->method('uploadCssFile')
51  ->with('css_file_uploader')
52  ->willThrowException($exception);
53 
54  $this->_objectManagerMock->expects($this->at(0))
55  ->method('get')
56  ->with(\Magento\Theme\Model\Uploader\Service::class)
57  ->willReturn($serviceModel);
58 
59  $jsonData = $this->createMock(\Magento\Framework\Json\Helper\Data::class);
60  $jsonData->expects($this->once())
61  ->method('jsonEncode')
62  ->with(['error' => true, 'message' => 'Message'])
63  ->willReturn('{"error":"true","message":"Message"}');
64 
65  $this->_objectManagerMock->expects($this->at(1))
66  ->method('get')
67  ->with(\Magento\Framework\Json\Helper\Data::class)
68  ->willReturn($jsonData);
69 
70  $this->_model->execute();
71  }
72 
73  public function testExecuteWithException()
74  {
75  $exception = new \Exception('Message');
76  $serviceModel = $this->createMock(\Magento\Theme\Model\Uploader\Service::class);
77  $serviceModel->expects($this->once())
78  ->method('uploadCssFile')
79  ->with('css_file_uploader')
80  ->willThrowException($exception);
81 
82  $this->_objectManagerMock->expects($this->at(0))
83  ->method('get')
84  ->with(\Magento\Theme\Model\Uploader\Service::class)
85  ->willReturn($serviceModel);
86 
87  $logger = $this->getMockForAbstractClass(\Psr\Log\LoggerInterface::class, [], '', false);
88  $logger->expects($this->once())
89  ->method('critical');
90  $this->_objectManagerMock->expects($this->at(1))
91  ->method('get')
92  ->with(\Psr\Log\LoggerInterface::class)
93  ->willReturn($logger);
94 
95  $jsonData = $this->createMock(\Magento\Framework\Json\Helper\Data::class);
96  $jsonData->expects($this->once())
97  ->method('jsonEncode')
98  ->with(['error' => true, 'message' => 'We can\'t upload the CSS file right now.'])
99  ->willReturn('{"error":"true","message":"Message"}');
100 
101  $this->_objectManagerMock->expects($this->at(2))
102  ->method('get')
103  ->with(\Magento\Framework\Json\Helper\Data::class)
104  ->willReturn($jsonData);
105 
106  $this->_model->execute();
107  }
108 }
$logger