Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AjaxLoadRatesTest.php
Go to the documentation of this file.
1 <?php
7 
16 use Magento\Tax\Model\Rate\Provider as RatesProvider;
18 use PHPUnit_Framework_MockObject_MockObject as MockObject;
19 
23 class AjaxLoadRatesTest extends \PHPUnit\Framework\TestCase
24 {
28  private $request;
29 
33  private $resultFactory;
34 
38  private $ratesProvider;
39 
43  private $context;
44 
48  private $searchCriteriaBuilder;
49 
53  protected function setUp()
54  {
55  $this->context = $this->getMockBuilder(Context::class)
56  ->disableOriginalConstructor()
57  ->getMock();
58 
59  $this->searchCriteriaBuilder = $this->getMockBuilder(SearchCriteriaBuilder::class)
60  ->disableOriginalConstructor()
61  ->getMock();
62 
63  $this->request = $this->getMockBuilder(Request::class)
64  ->disableOriginalConstructor()
65  ->getMock();
66 
67  $this->resultFactory = $this->getMockBuilder(ResultFactory::class)
68  ->disableOriginalConstructor()
69  ->getMock();
70 
71  $this->ratesProvider = $this->getMockBuilder(RatesProvider::class)
72  ->disableOriginalConstructor()
73  ->getMock();
74  }
75 
79  public function testExecute()
80  {
81  $objectManager = new ObjectManager($this);
82 
83  $this->request->expects($this->any())
84  ->method('getParam')
85  ->withAnyParameters()
86  ->willReturn('');
87 
88  $this->searchCriteriaBuilder->expects($this->once())
89  ->method('setCurrentPage')
90  ->willReturnSelf();
91 
92  $this->searchCriteriaBuilder->expects($this->once())
93  ->method('setPageSize')
94  ->willReturnSelf();
95 
96  $searchCriteria = $this->getMockBuilder(SearchCriteriaInterface::class)
97  ->getMockForAbstractClass();
98 
99  $this->searchCriteriaBuilder->expects($this->once())
100  ->method('create')
101  ->willReturn($searchCriteria);
102 
103  $this->ratesProvider->expects($this->any())
104  ->method('toOptionArray')
105  ->with($searchCriteria)
106  ->willThrowException(new \Exception());
107 
108  $jsonObject= $this->getMockBuilder(Json::class)
109  ->disableOriginalConstructor()
110  ->setMethods(['setData'])
111  ->getMock();
112 
113  $jsonObject->expects($this->once())
114  ->method('setData')
115  ->with([
116  'success' => false,
117  'errorMessage' => __('An error occurred while loading tax rates.')
118  ]);
119 
120  $this->resultFactory->expects($this->any())
121  ->method('create')
123  ->willReturn($jsonObject);
124 
125  $controller = $objectManager->getObject(
126  AjaxLoadRates::class,
127  [
128  'context' => $this->context,
129  'searchCriteriaBuilder' => $this->searchCriteriaBuilder,
130  'ratesProvider' => $this->ratesProvider,
131  'resultFactory' => $this->resultFactory,
132  '_request' => $this->request
133  ]
134  );
135 
136  $this->assertSame($jsonObject, $controller->execute());
137  }
138 }
$objectManager
Definition: bootstrap.php:17
__()
Definition: __.php:13
$searchCriteria
$controller
Definition: info.phtml:14