From 3904387913928620e7b856522cd21a95a587d358 Mon Sep 17 00:00:00 2001
From: neeta-wagento <neeta@wagento.com>
Date: Sun, 7 Jan 2018 14:56:51 +0530
Subject: [PATCH] commit for minimum order notice currency conversion issue in
 notice message

---
 .../MinimumOrderAmount/ValidationMessage.php  | 24 ++++++++-----
 .../ValidationMessageTest.php                 | 36 +++++++++++--------
 2 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/app/code/Magento/Quote/Model/Quote/Validator/MinimumOrderAmount/ValidationMessage.php b/app/code/Magento/Quote/Model/Quote/Validator/MinimumOrderAmount/ValidationMessage.php
index 3113721f8a5..1854689e7ae 100644
--- a/app/code/Magento/Quote/Model/Quote/Validator/MinimumOrderAmount/ValidationMessage.php
+++ b/app/code/Magento/Quote/Model/Quote/Validator/MinimumOrderAmount/ValidationMessage.php
@@ -19,22 +19,32 @@ class ValidationMessage
 
     /**
      * @var \Magento\Framework\Locale\CurrencyInterface
+     * @deprecated since 101.0.0
      */
     private $currency;
 
+    /**
+     * @var \Magento\Framework\Pricing\Helper\Data
+     */
+    private $priceHelper;
+
     /**
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Framework\Locale\CurrencyInterface $currency
+     * @param \Magento\Framework\Pricing\Helper\Data $priceHelper
      */
     public function __construct(
         \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
         \Magento\Store\Model\StoreManagerInterface $storeManager,
-        \Magento\Framework\Locale\CurrencyInterface $currency
+        \Magento\Framework\Locale\CurrencyInterface $currency,
+        \Magento\Framework\Pricing\Helper\Data $priceHelper
     ) {
         $this->scopeConfig = $scopeConfig;
         $this->storeManager = $storeManager;
         $this->currency = $currency;
+        $this->priceHelper = $priceHelper ?: \Magento\Framework\App\ObjectManager::getInstance()
+            ->get(\Magento\Framework\Pricing\Helper\Data::class);
     }
 
     /**
@@ -50,13 +60,11 @@ class ValidationMessage
             \Magento\Store\Model\ScopeInterface::SCOPE_STORE
         );
         if (!$message) {
-            $currencyCode = $this->storeManager->getStore()->getCurrentCurrencyCode();
-            $minimumAmount = $this->currency->getCurrency($currencyCode)->toCurrency(
-                $this->scopeConfig->getValue(
-                    'sales/minimum_order/amount',
-                    \Magento\Store\Model\ScopeInterface::SCOPE_STORE
-                )
-            );
+            $minimumAmount =  $this->priceHelper->currency($this->scopeConfig->getValue(
+                'sales/minimum_order/amount',
+                \Magento\Store\Model\ScopeInterface::SCOPE_STORE
+            ), true, false);
+
             $message = __('Minimum order amount is %1', $minimumAmount);
         } else {
             //Added in order to address the issue: https://github.com/magento/magento2/issues/8287
diff --git a/app/code/Magento/Quote/Test/Unit/Model/Quote/Validator/MinimumOrderAmount/ValidationMessageTest.php b/app/code/Magento/Quote/Test/Unit/Model/Quote/Validator/MinimumOrderAmount/ValidationMessageTest.php
index 64204ea1fb9..48a90aa6b09 100644
--- a/app/code/Magento/Quote/Test/Unit/Model/Quote/Validator/MinimumOrderAmount/ValidationMessageTest.php
+++ b/app/code/Magento/Quote/Test/Unit/Model/Quote/Validator/MinimumOrderAmount/ValidationMessageTest.php
@@ -21,24 +21,33 @@ class ValidationMessageTest extends \PHPUnit\Framework\TestCase
 
     /**
      * @var \PHPUnit_Framework_MockObject_MockObject
+     * @deprecated since 101.0.0
      */
     private $storeManagerMock;
 
     /**
      * @var \PHPUnit_Framework_MockObject_MockObject
+     * @deprecated since 101.0.0
      */
     private $currencyMock;
 
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $priceHelperMock;
+
     protected function setUp()
     {
         $this->scopeConfigMock = $this->createMock(\Magento\Framework\App\Config\ScopeConfigInterface::class);
         $this->storeManagerMock = $this->createMock(\Magento\Store\Model\StoreManagerInterface::class);
         $this->currencyMock = $this->createMock(\Magento\Framework\Locale\CurrencyInterface::class);
+        $this->priceHelperMock = $this->createMock(\Magento\Framework\Pricing\Helper\Data::class);
 
         $this->model = new \Magento\Quote\Model\Quote\Validator\MinimumOrderAmount\ValidationMessage(
             $this->scopeConfigMock,
             $this->storeManagerMock,
-            $this->currencyMock
+            $this->currencyMock,
+            $this->priceHelperMock
         );
     }
 
@@ -58,20 +67,17 @@ class ValidationMessageTest extends \PHPUnit\Framework\TestCase
             ->with('sales/minimum_order/amount', \Magento\Store\Model\ScopeInterface::SCOPE_STORE)
             ->willReturn($minimumAmount);
 
-        $storeMock = $this->createPartialMock(\Magento\Store\Model\Store::class, ['getCurrentCurrencyCode']);
-        $storeMock->expects($this->once())->method('getCurrentCurrencyCode')->willReturn($currencyCode);
-        $this->storeManagerMock->expects($this->once())->method('getStore')->willReturn($storeMock);
-
-        $currencyMock = $this->createMock(\Magento\Framework\Currency::class);
-        $this->currencyMock->expects($this->once())
-            ->method('getCurrency')
-            ->with($currencyCode)
-            ->willReturn($currencyMock);
-
-        $currencyMock->expects($this->once())
-            ->method('toCurrency')
-            ->with($minimumAmount)
-            ->willReturn($minimumAmountCurrency);
+        $this->priceHelperMock->expects(
+            $this->once()
+        )->method(
+            'currency'
+        )->with(
+            $minimumAmount,
+            true,
+            false
+        )->will(
+            $this->returnValue($minimumAmountCurrency)
+        );
 
         $this->assertEquals(
             __('Minimum order amount is %1', $minimumAmountCurrency),
-- 
GitLab