Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SaveRatesTest.php
Go to the documentation of this file.
1 <?php
7 
8 use Magento\Framework\App\Request\Http as HttpRequest;
9 
11 {
12 
14  protected $currencyRate;
15 
19  protected function setUp()
20  {
21  $this->currencyRate = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create(
22  \Magento\Directory\Model\Currency::class
23  );
24  parent::setUp();
25  }
26 
30  protected function tearDown()
31  {
32  $this->_model = null;
33  parent::tearDown();
34  }
35 
41  public function testSaveAction()
42  {
43  $currencyCode = 'USD';
44  $currencyTo = 'USD';
45  $rate = 1.0000;
46 
47  $request = $this->getRequest();
48  $request->setMethod(HttpRequest::METHOD_POST);
49  $request->setPostValue(
50  'rate',
51  [
52  $currencyCode => [$currencyTo => $rate]
53  ]
54  );
55  $this->dispatch('backend/admin/system_currency/saveRates');
56 
57  $this->assertSessionMessages(
58  $this->contains((string)__('All valid rates have been saved.')),
59  \Magento\Framework\Message\MessageInterface::TYPE_SUCCESS
60  );
61 
62  $this->assertEquals(
63  $rate,
64  $this->currencyRate->load($currencyCode)->getRate($currencyTo),
65  'Currency rate has not been saved'
66  );
67  }
68 
74  public function testSaveWithWarningAction()
75  {
76  $currencyCode = 'USD';
77  $currencyTo = 'USD';
78  $rate = '0';
79 
80  $request = $this->getRequest();
81  $request->setMethod(HttpRequest::METHOD_POST);
82  $request->setPostValue(
83  'rate',
84  [
85  $currencyCode => [$currencyTo => $rate]
86  ]
87  );
88  $this->dispatch('backend/admin/system_currency/saveRates');
89 
90  $this->assertSessionMessages(
91  $this->contains(
92  (string)__('Please correct the input data for "%1 => %2" rate.', $currencyCode, $currencyTo)
93  ),
94  \Magento\Framework\Message\MessageInterface::TYPE_WARNING
95  );
96  }
97 }
__()
Definition: __.php:13
dispatch(\Magento\Framework\App\RequestInterface $request)
assertSessionMessages(\PHPUnit\Framework\Constraint\Constraint $constraint, $messageType=null, $messageManagerClass=\Magento\Framework\Message\Manager::class)