Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CurrencyTest.php
Go to the documentation of this file.
1 <?php
7 
8 class CurrencyTest extends \PHPUnit\Framework\TestCase
9 {
13  protected $object;
14 
19 
23  protected $urlBuilderMock;
24 
25  protected function setUp()
26  {
27  $this->urlBuilderMock = $this->createMock(\Magento\Framework\UrlInterface::class);
28  $this->urlBuilderMock->expects($this->any())->method('getUrl')->will($this->returnArgument(0));
29 
33  $contextMock = $this->getMockBuilder(\Magento\Framework\View\Element\Template\Context::class)
34  ->disableOriginalConstructor()
35  ->getMock();
36  $contextMock->expects($this->any())->method('getUrlBuilder')->will($this->returnValue($this->urlBuilderMock));
37 
38  $escaperMock = $this->getMockBuilder(\Magento\Framework\Escaper::class)
39  ->disableOriginalConstructor()
40  ->getMock();
41  $escaperMock->method('escapeUrl')
42  ->willReturnCallback(
43  function ($string) {
44  return 'escapeUrl' . $string;
45  }
46  );
47  $contextMock->expects($this->once())
48  ->method('getEscaper')
49  ->willReturn($escaperMock);
50 
52  $currencyFactoryMock = $this->createMock(\Magento\Directory\Model\CurrencyFactory::class);
53  $this->postDataHelperMock = $this->createMock(\Magento\Framework\Data\Helper\PostHelper::class);
54 
56  $localeResolverMock = $this->createMock(\Magento\Framework\Locale\ResolverInterface::class);
57 
58  $this->object = new \Magento\Directory\Block\Currency(
59  $contextMock,
60  $currencyFactoryMock,
61  $this->postDataHelperMock,
62  $localeResolverMock
63  );
64  }
65 
67  {
68  $expectedResult = 'post_data';
69  $expectedCurrencyCode = 'test';
70  $switchUrl = 'escapeUrldirectory/currency/switch';
71 
72  $this->postDataHelperMock->expects($this->once())
73  ->method('getPostData')
74  ->with($this->equalTo($switchUrl), $this->equalTo(['currency' => $expectedCurrencyCode]))
75  ->will($this->returnValue($expectedResult));
76 
77  $this->assertEquals($expectedResult, $this->object->getSwitchCurrencyPostData($expectedCurrencyCode));
78  }
79 }