CurrencyTest.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Directory\Test\Unit\Block;
  7. class CurrencyTest extends \PHPUnit\Framework\TestCase
  8. {
  9. /**
  10. * @var \Magento\Directory\Block\Currency
  11. */
  12. protected $object;
  13. /**
  14. * @var \PHPUnit_Framework_MockObject_MockObject
  15. */
  16. protected $postDataHelperMock;
  17. /**
  18. * @var \PHPUnit_Framework_MockObject_MockObject
  19. */
  20. protected $urlBuilderMock;
  21. protected function setUp()
  22. {
  23. $this->urlBuilderMock = $this->createMock(\Magento\Framework\UrlInterface::class);
  24. $this->urlBuilderMock->expects($this->any())->method('getUrl')->will($this->returnArgument(0));
  25. /**
  26. * @var \Magento\Framework\View\Element\Template\Context|\PHPUnit_Framework_MockObject_MockObject $contextMock
  27. */
  28. $contextMock = $this->getMockBuilder(\Magento\Framework\View\Element\Template\Context::class)
  29. ->disableOriginalConstructor()
  30. ->getMock();
  31. $contextMock->expects($this->any())->method('getUrlBuilder')->will($this->returnValue($this->urlBuilderMock));
  32. $escaperMock = $this->getMockBuilder(\Magento\Framework\Escaper::class)
  33. ->disableOriginalConstructor()
  34. ->getMock();
  35. $escaperMock->method('escapeUrl')
  36. ->willReturnCallback(
  37. function ($string) {
  38. return 'escapeUrl' . $string;
  39. }
  40. );
  41. $contextMock->expects($this->once())
  42. ->method('getEscaper')
  43. ->willReturn($escaperMock);
  44. /** @var \Magento\Directory\Model\CurrencyFactory $currencyFactoryMock */
  45. $currencyFactoryMock = $this->createMock(\Magento\Directory\Model\CurrencyFactory::class);
  46. $this->postDataHelperMock = $this->createMock(\Magento\Framework\Data\Helper\PostHelper::class);
  47. /** @var \Magento\Framework\Locale\ResolverInterface $localeResolverMock */
  48. $localeResolverMock = $this->createMock(\Magento\Framework\Locale\ResolverInterface::class);
  49. $this->object = new \Magento\Directory\Block\Currency(
  50. $contextMock,
  51. $currencyFactoryMock,
  52. $this->postDataHelperMock,
  53. $localeResolverMock
  54. );
  55. }
  56. public function testGetSwitchCurrencyPostData()
  57. {
  58. $expectedResult = 'post_data';
  59. $expectedCurrencyCode = 'test';
  60. $switchUrl = 'escapeUrldirectory/currency/switch';
  61. $this->postDataHelperMock->expects($this->once())
  62. ->method('getPostData')
  63. ->with($this->equalTo($switchUrl), $this->equalTo(['currency' => $expectedCurrencyCode]))
  64. ->will($this->returnValue($expectedResult));
  65. $this->assertEquals($expectedResult, $this->object->getSwitchCurrencyPostData($expectedCurrencyCode));
  66. }
  67. }