diff --git a/.phpstan.dist.baseline.neon b/.phpstan.dist.baseline.neon
index 83b8706e101..6fe9bc81531 100644
--- a/.phpstan.dist.baseline.neon
+++ b/.phpstan.dist.baseline.neon
@@ -3479,3 +3479,9 @@ parameters:
identifier: argument.type
count: 1
path: lib/Varien/Simplexml/Element.php
+
+ -
+ rawMessage: Dead catch - PhpUnitsOfMeasure\Exception\UnknownUnitOfMeasure is never thrown in the try block.
+ identifier: catch.neverThrown
+ count: 2
+ path: tests/unit/Mage/Usa/Helper/DataTest.php
diff --git a/.phpunit.dist.xml b/.phpunit.dist.xml
index 4ea1c4749d8..72c2fc2ffa2 100644
--- a/.phpunit.dist.xml
+++ b/.phpunit.dist.xml
@@ -106,6 +106,9 @@
tests/unit/Mage/Uploader
+
+ tests/unit/Mage/Usa
+
tests/unit/Mage/Wishlist
diff --git a/app/code/core/Mage/Core/Helper/Measure/Length.php b/app/code/core/Mage/Core/Helper/Measure/Length.php
new file mode 100644
index 00000000000..3f9b894f506
--- /dev/null
+++ b/app/code/core/Mage/Core/Helper/Measure/Length.php
@@ -0,0 +1,26 @@
+convertMeasureWeight(
$kgWeight,
- Zend_Measure_Weight::KILOGRAM,
- Zend_Measure_Weight::POUND,
+ Mage_Core_Helper_Measure_Weight::KILOGRAM,
+ Mage_Core_Helper_Measure_Weight::POUND,
),
3,
);
diff --git a/app/code/core/Mage/Usa/Helper/Data.php b/app/code/core/Mage/Usa/Helper/Data.php
index 3a3c8982a99..c8b8fbe8e7d 100644
--- a/app/code/core/Mage/Usa/Helper/Data.php
+++ b/app/code/core/Mage/Usa/Helper/Data.php
@@ -7,6 +7,12 @@
* @package Mage_Usa
*/
+use PhpUnitsOfMeasure\Exception\NonNumericValue;
+use PhpUnitsOfMeasure\Exception\NonStringUnitName;
+use PhpUnitsOfMeasure\Exception\UnknownUnitOfMeasure;
+use PhpUnitsOfMeasure\PhysicalQuantity\Mass;
+use PhpUnitsOfMeasure\PhysicalQuantity\Length;
+
/**
* @package Mage_Usa
*/
@@ -17,18 +23,18 @@ class Mage_Usa_Helper_Data extends Mage_Core_Helper_Abstract
/**
* Convert weight in different measure types
*
- * @param mixed $value
- * @param string $sourceWeightMeasure
- * @param string $toWeightMeasure
- * @return null|int|string
+ * @param float $value
+ * @param Mage_Core_Helper_Measure_Weight::* $sourceWeightMeasure
+ * @param Mage_Core_Helper_Measure_Weight::* $toWeightMeasure
+ * @return null|float
+ * @throws NonNumericValue
+ * @throws NonStringUnitName
*/
public function convertMeasureWeight($value, $sourceWeightMeasure, $toWeightMeasure)
{
if ($value) {
- $locale = Mage::app()->getLocale()->getLocale();
- $unitWeight = new Zend_Measure_Weight($value, $sourceWeightMeasure, $locale);
- $unitWeight->setType($toWeightMeasure);
- return $unitWeight->getValue();
+ $unitWeight = new Mass($value, $sourceWeightMeasure);
+ return $unitWeight->toUnit($toWeightMeasure);
}
return null;
@@ -37,20 +43,18 @@ public function convertMeasureWeight($value, $sourceWeightMeasure, $toWeightMeas
/**
* Convert dimensions in different measure types
*
- * @param float|int|string $value
- * @param string $sourceDimensionMeasure
- * @param string $toDimensionMeasure
- * @return null|int|string
- * @throws Zend_Locale_Exception
- * @throws Zend_Measure_Exception
+ * @param float $value
+ * @param Mage_Core_Helper_Measure_Length::* $sourceDimensionMeasure
+ * @param Mage_Core_Helper_Measure_Length::* $toDimensionMeasure
+ * @return null|float
+ * @throws NonNumericValue
+ * @throws NonStringUnitName
*/
public function convertMeasureDimension($value, $sourceDimensionMeasure, $toDimensionMeasure)
{
if ($value) {
- $locale = Mage::app()->getLocale()->getLocale();
- $unitDimension = new Zend_Measure_Length($value, $sourceDimensionMeasure, $locale);
- $unitDimension->setType($toDimensionMeasure);
- return $unitDimension->getValue();
+ $unitDimension = new Length($value, $sourceDimensionMeasure);
+ return $unitDimension->toUnit($toDimensionMeasure);
}
return null;
@@ -59,37 +63,27 @@ public function convertMeasureDimension($value, $sourceDimensionMeasure, $toDime
/**
* Get name of measure by its type
*
- * @param $key
+ * @param string $key
* @return string
- * @throws Zend_Measure_Exception
+ * @throws UnknownUnitOfMeasure
*/
public function getMeasureWeightName($key)
{
- $weight = new Zend_Measure_Weight(0);
- $conversionList = $weight->getConversionList();
- if (!empty($conversionList[$key]) && !empty($conversionList[$key][1])) {
- return $conversionList[$key][1];
- }
-
- return '';
+ $unit = Mass::getUnit($key);
+ return $unit->getName();
}
/**
* Get name of measure by its type
*
- * @param $key
+ * @param string $key
* @return string
- * @throws Zend_Measure_Exception
+ * @throws UnknownUnitOfMeasure
*/
public function getMeasureDimensionName($key)
{
- $weight = new Zend_Measure_Length(0);
- $conversionList = $weight->getConversionList();
- if (!empty($conversionList[$key]) && !empty($conversionList[$key][1])) {
- return $conversionList[$key][1];
- }
-
- return '';
+ $unit = Length::getUnit($key);
+ return $unit->getName();
}
/**
@@ -132,7 +126,6 @@ public function displayGirthValue($shippingMethod)
* Validate ups type value
*
* @param string $valueForCheck ups type value for check
- *
* @return bool
*/
public function validateUpsType($valueForCheck)
diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php
index c481bfb210a..144016df6f0 100644
--- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php
+++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php
@@ -290,29 +290,29 @@ public function setRequest(Varien_Object $request)
if ($request->getAction() == 'GenerateLabel') {
$packageParams = $request->getPackageParams();
$shippingWeight = $request->getPackageWeight();
- if ($packageParams->getWeightUnits() != Zend_Measure_Weight::POUND) {
+ if ($packageParams->getWeightUnits() != Mage_Core_Helper_Measure_Weight::POUND) {
$shippingWeight = round((float) Mage::helper('usa')->convertMeasureWeight(
$request->getPackageWeight(),
$packageParams->getWeightUnits(),
- Zend_Measure_Weight::POUND,
+ Mage_Core_Helper_Measure_Weight::POUND,
));
}
- if ($packageParams->getDimensionUnits() != Zend_Measure_Length::INCH) {
+ if ($packageParams->getDimensionUnits() != Mage_Core_Helper_Measure_Length::INCH) {
$packageParams->setLength(round((float) Mage::helper('usa')->convertMeasureDimension(
$packageParams->getLength(),
$packageParams->getDimensionUnits(),
- Zend_Measure_Length::INCH,
+ Mage_Core_Helper_Measure_Length::INCH,
)));
$packageParams->setWidth(round((float) Mage::helper('usa')->convertMeasureDimension(
$packageParams->getWidth(),
$packageParams->getDimensionUnits(),
- Zend_Measure_Length::INCH,
+ Mage_Core_Helper_Measure_Length::INCH,
)));
$packageParams->setHeight(round((float) Mage::helper('usa')->convertMeasureDimension(
$packageParams->getHeight(),
$packageParams->getDimensionUnits(),
- Zend_Measure_Length::INCH,
+ Mage_Core_Helper_Measure_Length::INCH,
)));
}
diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php
index 4e633c1d4e2..5fd7155e44c 100644
--- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php
+++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php
@@ -427,18 +427,18 @@ public function getCode($type, $code = '')
'1' => Mage::helper('usa')->__('Specific'),
],
'dimensions_variables' => [
- 'L' => Zend_Measure_Weight::POUND,
- 'LB' => Zend_Measure_Weight::POUND,
- 'POUND' => Zend_Measure_Weight::POUND,
- 'K' => Zend_Measure_Weight::KILOGRAM,
- 'KG' => Zend_Measure_Weight::KILOGRAM,
- 'KILOGRAM' => Zend_Measure_Weight::KILOGRAM,
- 'I' => Zend_Measure_Length::INCH,
- 'IN' => Zend_Measure_Length::INCH,
- 'INCH' => Zend_Measure_Length::INCH,
- 'C' => Zend_Measure_Length::CENTIMETER,
- 'CM' => Zend_Measure_Length::CENTIMETER,
- 'CENTIMETER' => Zend_Measure_Length::CENTIMETER,
+ 'L' => Mage_Core_Helper_Measure_Weight::POUND,
+ 'LB' => Mage_Core_Helper_Measure_Weight::POUND,
+ 'POUND' => Mage_Core_Helper_Measure_Weight::POUND,
+ 'K' => Mage_Core_Helper_Measure_Weight::KILOGRAM,
+ 'KG' => Mage_Core_Helper_Measure_Weight::KILOGRAM,
+ 'KILOGRAM' => Mage_Core_Helper_Measure_Weight::KILOGRAM,
+ 'I' => Mage_Core_Helper_Measure_Length::INCH,
+ 'IN' => Mage_Core_Helper_Measure_Length::INCH,
+ 'INCH' => Mage_Core_Helper_Measure_Length::INCH,
+ 'C' => Mage_Core_Helper_Measure_Length::CENTIMETER,
+ 'CM' => Mage_Core_Helper_Measure_Length::CENTIMETER,
+ 'CENTIMETER' => Mage_Core_Helper_Measure_Length::CENTIMETER,
],
];
@@ -537,7 +537,7 @@ public function getDhlProductTitle($code)
protected function _getWeight($weight, $maxWeight = false, $configWeightUnit = false)
{
if ($maxWeight) {
- $configWeightUnit = Zend_Measure_Weight::KILOGRAM;
+ $configWeightUnit = Mage_Core_Helper_Measure_Weight::KILOGRAM;
} elseif ($configWeightUnit) {
$configWeightUnit = $this->getCode('dimensions_variables', $configWeightUnit);
} else {
@@ -731,10 +731,10 @@ protected function _getDimension($dimension, $configWeightUnit = false)
$configWeightUnit = $this->getCode('dimensions_variables', $configWeightUnit);
}
- if ($configWeightUnit == Zend_Measure_Weight::POUND) {
- $configDimensionUnit = Zend_Measure_Length::INCH;
+ if ($configWeightUnit == Mage_Core_Helper_Measure_Weight::POUND) {
+ $configDimensionUnit = Mage_Core_Helper_Measure_Length::INCH;
} else {
- $configDimensionUnit = Zend_Measure_Length::CENTIMETER;
+ $configDimensionUnit = Mage_Core_Helper_Measure_Length::CENTIMETER;
}
$countryDimensionUnit = $this->getCode('dimensions_variables', $this->_getDimensionUnit());
diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php
index 4ec75446679..8ace1b2a4c8 100644
--- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php
+++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php
@@ -1343,8 +1343,8 @@ protected function _formShipmentRequest(Varien_Object $request)
$height = $packageParams->getHeight();
$width = $packageParams->getWidth();
$length = $packageParams->getLength();
- $weightUnits = $packageParams->getWeightUnits() == Zend_Measure_Weight::POUND ? 'LB' : 'KG';
- $dimensionsUnits = $packageParams->getDimensionUnits() == Zend_Measure_Length::INCH ? 'IN' : 'CM';
+ $weightUnits = $packageParams->getWeightUnits() == Mage_Core_Helper_Measure_Weight::POUND ? 'LB' : 'KG';
+ $dimensionsUnits = $packageParams->getDimensionUnits() == Mage_Core_Helper_Measure_Length::INCH ? 'IN' : 'CM';
$unitPrice = 0;
$itemsQty = 0;
$itemsDesc = [];
diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php
index 04363fed5f6..f2b59bae443 100644
--- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php
+++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php
@@ -1379,8 +1379,8 @@ protected function _formShipmentRequest(Varien_Object $request)
$height = $packageParams->getHeight();
$width = $packageParams->getWidth();
$length = $packageParams->getLength();
- $weightUnits = $packageParams->getWeightUnits() == Zend_Measure_Weight::POUND ? 'LBS' : 'KGS';
- $dimensionsUnits = $packageParams->getDimensionUnits() == Zend_Measure_Length::INCH ? 'IN' : 'CM';
+ $weightUnits = $packageParams->getWeightUnits() == Mage_Core_Helper_Measure_Weight::POUND ? 'LBS' : 'KGS';
+ $dimensionsUnits = $packageParams->getDimensionUnits() == Mage_Core_Helper_Measure_Length::INCH ? 'IN' : 'CM';
$xmlRequest = new SimpleXMLElement('');
$requestPart = $xmlRequest->addChild('Request');
@@ -1797,8 +1797,8 @@ protected function _formShipmentRestRequest(Varien_Object $request): string
$width = $packageParams->getWidth();
$length = $packageParams->getLength();
$weight = $packageParams->getWeight();
- $weightUnits = $packageParams->getWeightUnits() == Zend_Measure_Weight::POUND ? 'LBS' : 'KGS';
- $dimensionsUnits = $packageParams->getDimensionUnits() == Zend_Measure_Length::INCH ? 'IN' : 'CM';
+ $weightUnits = $packageParams->getWeightUnits() == Mage_Core_Helper_Measure_Weight::POUND ? 'LBS' : 'KGS';
+ $dimensionsUnits = $packageParams->getDimensionUnits() == Mage_Core_Helper_Measure_Length::INCH ? 'IN' : 'CM';
/** Shipment API Payload */
$shipParams = [
diff --git a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php
index 08174e742b0..cb8806e627f 100644
--- a/app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php
+++ b/app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php
@@ -1353,11 +1353,11 @@ protected function _formUsExpressShipmentRequest(Varien_Object $request)
$packageParams = $request->getPackageParams();
$packageWeight = $request->getPackageWeight();
- if ($packageParams->getWeightUnits() != Zend_Measure_Weight::OUNCE) {
+ if ($packageParams->getWeightUnits() != Mage_Core_Helper_Measure_Weight::OUNCE) {
$packageWeight = round((float) Mage::helper('usa')->convertMeasureWeight(
$request->getPackageWeight(),
$packageParams->getWeightUnits(),
- Zend_Measure_Weight::OUNCE,
+ Mage_Core_Helper_Measure_Weight::OUNCE,
));
}
@@ -1424,11 +1424,11 @@ protected function _formUsSignatureConfirmationShipmentRequest(Varien_Object $re
};
$packageParams = $request->getPackageParams();
$packageWeight = $request->getPackageWeight();
- if ($packageParams->getWeightUnits() != Zend_Measure_Weight::OUNCE) {
+ if ($packageParams->getWeightUnits() != Mage_Core_Helper_Measure_Weight::OUNCE) {
$packageWeight = round((float) Mage::helper('usa')->convertMeasureWeight(
$request->getPackageWeight(),
$packageParams->getWeightUnits(),
- Zend_Measure_Weight::OUNCE,
+ Mage_Core_Helper_Measure_Weight::OUNCE,
));
}
@@ -1501,37 +1501,37 @@ protected function _formIntlShipmentRequest(Varien_Object $request)
$length = $packageParams->getLength();
$girth = $packageParams->getGirth();
$packageWeight = $request->getPackageWeight();
- if ($packageParams->getWeightUnits() != Zend_Measure_Weight::POUND) {
+ if ($packageParams->getWeightUnits() != Mage_Core_Helper_Measure_Weight::POUND) {
$packageWeight = Mage::helper('usa')->convertMeasureWeight(
$request->getPackageWeight(),
$packageParams->getWeightUnits(),
- Zend_Measure_Weight::POUND,
+ Mage_Core_Helper_Measure_Weight::POUND,
);
}
- if ($packageParams->getDimensionUnits() != Zend_Measure_Length::INCH) {
+ if ($packageParams->getDimensionUnits() != Mage_Core_Helper_Measure_Length::INCH) {
$length = round((float) Mage::helper('usa')->convertMeasureDimension(
$packageParams->getLength(),
$packageParams->getDimensionUnits(),
- Zend_Measure_Length::INCH,
+ Mage_Core_Helper_Measure_Length::INCH,
));
$width = round((float) Mage::helper('usa')->convertMeasureDimension(
$packageParams->getWidth(),
$packageParams->getDimensionUnits(),
- Zend_Measure_Length::INCH,
+ Mage_Core_Helper_Measure_Length::INCH,
));
$height = round((float) Mage::helper('usa')->convertMeasureDimension(
$packageParams->getHeight(),
$packageParams->getDimensionUnits(),
- Zend_Measure_Length::INCH,
+ Mage_Core_Helper_Measure_Length::INCH,
));
}
- if ($packageParams->getGirthDimensionUnits() != Zend_Measure_Length::INCH) {
+ if ($packageParams->getGirthDimensionUnits() != Mage_Core_Helper_Measure_Length::INCH) {
$girth = round((float) Mage::helper('usa')->convertMeasureDimension(
$packageParams->getGirth(),
$packageParams->getGirthDimensionUnits(),
- Zend_Measure_Length::INCH,
+ Mage_Core_Helper_Measure_Length::INCH,
));
}
@@ -1650,11 +1650,11 @@ protected function _formIntlShipmentRequest(Varien_Object $request)
$item->setData($itemShipment);
$itemWeight = $item->getWeight() * $item->getQty();
- if ($packageParams->getWeightUnits() != Zend_Measure_Weight::POUND) {
+ if ($packageParams->getWeightUnits() != Mage_Core_Helper_Measure_Weight::POUND) {
$itemWeight = Mage::helper('usa')->convertMeasureWeight(
$itemWeight,
$packageParams->getWeightUnits(),
- Zend_Measure_Weight::POUND,
+ Mage_Core_Helper_Measure_Weight::POUND,
);
}
diff --git a/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/popup.phtml b/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/popup.phtml
index 520947371a1..4403d3f37d8 100644
--- a/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/popup.phtml
+++ b/app/design/adminhtml/default/default/template/sales/order/shipment/packaging/popup.phtml
@@ -87,8 +87,8 @@ document.observe("dom:loaded", function() {
|
|
@@ -108,8 +108,8 @@ document.observe("dom:loaded", function() {
|
@@ -123,8 +123,8 @@ document.observe("dom:loaded", function() {
|
|
getDeliveryConfirmationTypes()): ?>
diff --git a/composer.json b/composer.json
index 39acd6563d1..11bb4452110 100644
--- a/composer.json
+++ b/composer.json
@@ -41,6 +41,7 @@
"nnnick/chartjs": "^4.4",
"openmage/composer-plugin": "^3.1",
"pelago/emogrifier": "^8.0",
+ "php-units-of-measure/php-units-of-measure": "^2.2",
"phpseclib/mcrypt_compat": "^2.0.3",
"phpseclib/phpseclib": "^3.0.14",
"shardj/zf1-future": "^1.24.1",
@@ -198,4 +199,4 @@
"vendor:patch": "Create patch file",
"test": "Run php-cs-fixer, phpstan & phpunit"
}
-}
\ No newline at end of file
+}
diff --git a/composer.lock b/composer.lock
index 4c126595543..3da36c52b43 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "e315d71b276ddf7480ec9021303416ac",
+ "content-hash": "bcf1c4a1e53248dd4f0887fe73eff253",
"packages": [
{
"name": "carbonphp/carbon-doctrine-types",
@@ -1631,6 +1631,59 @@
},
"time": "2025-09-15T12:53:23+00:00"
},
+ {
+ "name": "php-units-of-measure/php-units-of-measure",
+ "version": "v2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PhpUnitsOfMeasure/php-units-of-measure.git",
+ "reference": "cf1b83b1ef7615dd53f70864c9e7f496b1ec0fd1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PhpUnitsOfMeasure/php-units-of-measure/zipball/cf1b83b1ef7615dd53f70864c9e7f496b1ec0fd1",
+ "reference": "cf1b83b1ef7615dd53f70864c9e7f496b1ec0fd1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4"
+ },
+ "replace": {
+ "triplepoint/php-units-of-measure": "*"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.5",
+ "squizlabs/php_codesniffer": "^3.7"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PhpUnitsOfMeasure\\": "source/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jonathan Hanson",
+ "role": "Developer"
+ }
+ ],
+ "description": "A PHP library for converting between standard units of measure.",
+ "homepage": "https://github.com/PhpUnitsOfMeasure/php-units-of-measure",
+ "keywords": [
+ "conversion",
+ "data",
+ "measurements"
+ ],
+ "support": {
+ "issues": "https://github.com/PhpUnitsOfMeasure/php-units-of-measure/issues",
+ "source": "https://github.com/PhpUnitsOfMeasure/php-units-of-measure"
+ },
+ "time": "2025-04-30T23:02:43+00:00"
+ },
{
"name": "phpseclib/mcrypt_compat",
"version": "2.0.6",
diff --git a/tests/unit/Mage/Usa/Helper/DataTest.php b/tests/unit/Mage/Usa/Helper/DataTest.php
new file mode 100644
index 00000000000..37235f35278
--- /dev/null
+++ b/tests/unit/Mage/Usa/Helper/DataTest.php
@@ -0,0 +1,99 @@
+convertMeasureWeight($value, $sourceWeightMeasure, $toWeightMeasure));
+ } catch (NonNumericValue|NonStringUnitName|UnknownUnitOfMeasure $unitOfMeasure) {
+ self::assertSame($expectedResult, $unitOfMeasure->getMessage());
+ }
+ }
+
+ /**
+ * @dataProvider provideConvertMeasureDimensionData
+ * @group Helper
+ */
+ public function testConvertMeasureDimension(float|string $expectedResult, $value, ?string $sourceWeightMeasure, ?string $toWeightMeasure): void
+ {
+ try {
+ self::assertSame($expectedResult, self::$subject->convertMeasureDimension($value, $sourceWeightMeasure, $toWeightMeasure));
+ } catch (NonNumericValue|NonStringUnitName|UnknownUnitOfMeasure $unitOfMeasure) {
+ self::assertSame($expectedResult, $unitOfMeasure->getMessage());
+ }
+ }
+
+ /**
+ * @dataProvider provideGetMeasureWeightNameData
+ * @group Helper
+ */
+ public function testGetMeasureWeightName(string $expectedResult, string $key): void
+ {
+ try {
+ self::assertSame($expectedResult, self::$subject->getMeasureWeightName($key));
+ } catch (UnknownUnitOfMeasure $unknownUnitOfMeasure) {
+ self::assertSame($expectedResult, $unknownUnitOfMeasure->getMessage());
+ }
+ }
+
+ /**
+ * @dataProvider provideGetMeasureDimensionNameData
+ * @group Helper
+ */
+ public function testGetMeasureDimensionName(string $expectedResult, string $key): void
+ {
+ try {
+ self::assertSame($expectedResult, self::$subject->getMeasureDimensionName($key));
+ } catch (UnknownUnitOfMeasure $unknownUnitOfMeasure) {
+ self::assertSame($expectedResult, $unknownUnitOfMeasure->getMessage());
+ }
+ }
+
+ /**
+ * @dataProvider provideDisplayGirthValueData
+ * @group Helper
+ */
+ public function testDisplayGirthValue(bool $expectedResult, string $value): void
+ {
+ self::assertSame($expectedResult, self::$subject->displayGirthValue($value));
+ }
+
+ public function testCalidateUpsType(): void
+ {
+ self::assertIsBool(self::$subject->validateUpsType('invalid'));
+ }
+}
diff --git a/tests/unit/Traits/DataProvider/Mage/Usa/Helper/DataTrait.php b/tests/unit/Traits/DataProvider/Mage/Usa/Helper/DataTrait.php
new file mode 100644
index 00000000000..ecc211185d7
--- /dev/null
+++ b/tests/unit/Traits/DataProvider/Mage/Usa/Helper/DataTrait.php
@@ -0,0 +1,105 @@
+ [
+ 22.046226218487757,
+ 10,
+ Mage_Core_Helper_Measure_Weight::KILOGRAM,
+ Mage_Core_Helper_Measure_Weight::POUND,
+ ];
+
+ yield 'ounce to lbs' => [
+ 0.625,
+ 10,
+ Mage_Core_Helper_Measure_Weight::OUNCE,
+ Mage_Core_Helper_Measure_Weight::POUND,
+ ];
+
+ yield 'non-numeric value' => [
+ 'Value (xyz) must be numeric.',
+ 'xyz',
+ Mage_Core_Helper_Measure_Weight::OUNCE,
+ Mage_Core_Helper_Measure_Weight::POUND,
+ ];
+
+ yield 'non-string unit' => [
+ 'Unit name or alias () must be a string value.',
+ 10,
+ Mage_Core_Helper_Measure_Weight::OUNCE,
+ null,
+ ];
+ }
+
+ public function provideConvertMeasureDimensionData(): Generator
+ {
+ yield 'm to cm' => [
+ 1000,
+ 10,
+ Mage_Core_Helper_Measure_Length::STANDARD,
+ Mage_Core_Helper_Measure_Length::CENTIMETER,
+ ];
+
+ yield 'invalid to cm' => [
+ 'Unknown unit of measure (xyz).',
+ 10,
+ 'xyz',
+ Mage_Core_Helper_Measure_Length::CENTIMETER,
+ ];
+ }
+
+ public function provideGetMeasureWeightNameData(): Generator
+ {
+ yield 'kg' => [
+ 'kg',
+ Mage_Core_Helper_Measure_Weight::KILOGRAM,
+ ];
+
+ yield 'exception' => [
+ 'Unknown unit of measure (xyz).',
+ 'xyz',
+ ];
+ }
+
+ public function provideGetMeasureDimensionNameData(): Generator
+ {
+ yield 'm' => [
+ 'm',
+ Mage_Core_Helper_Measure_Length::STANDARD,
+ ];
+
+ yield 'exception' => [
+ 'Unknown unit of measure (xyz).',
+ 'xyz',
+ ];
+ }
+
+ public function provideDisplayGirthValueData(): Generator
+ {
+ yield 'valid' => [
+ true,
+ 'usps_1',
+ ];
+
+ yield 'invalid' => [
+ false,
+ 'invalid',
+ ];
+ }
+}