Quantity formatter test.
This commit is contained in:
parent
b1318bb0d2
commit
e130d45068
@ -26,8 +26,22 @@ class QuantityFormatter implements IFormatter
|
|||||||
public static function format($value)
|
public static function format($value)
|
||||||
{
|
{
|
||||||
$value = Utils::toString($value);
|
$value = Utils::toString($value);
|
||||||
$bn = Utils::toBn($value);
|
|
||||||
|
|
||||||
return '0x' . $bn->toHex(true);
|
if (Utils::isZeroPrefixed($value)) {
|
||||||
|
// test hex with zero ahead, hardcode 0x0
|
||||||
|
if ($value === '0x0' || strpos($value, '0x0') !== 0) {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
$hex = preg_replace('/^0x0+(?!$)/', '', $value);
|
||||||
|
} else {
|
||||||
|
$bn = Utils::toBn($value);
|
||||||
|
$hex = $bn->toHex(true);
|
||||||
|
}
|
||||||
|
if (empty($hex)) {
|
||||||
|
$hex = '0';
|
||||||
|
} else {
|
||||||
|
$hex = preg_replace('/^0+(?!$)/', '', $hex);
|
||||||
|
}
|
||||||
|
return '0x' . $hex;
|
||||||
}
|
}
|
||||||
}
|
}
|
55
test/unit/QuantityFormatterTest.php
Normal file
55
test/unit/QuantityFormatterTest.php
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Test\Unit;
|
||||||
|
|
||||||
|
use Test\TestCase;
|
||||||
|
use Web3\Formatters\QuantityFormatter;
|
||||||
|
|
||||||
|
class QuantityFormatterTest extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* formatter
|
||||||
|
*
|
||||||
|
* @var \Web3\Formatters\QuantityFormatter
|
||||||
|
*/
|
||||||
|
protected $formatter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* setUp
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
$this->formatter = new QuantityFormatter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testFormat
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testFormat()
|
||||||
|
{
|
||||||
|
$formatter = $this->formatter;
|
||||||
|
|
||||||
|
$this->assertEquals('0x927c0', $formatter->format(0x0927c0));
|
||||||
|
$this->assertEquals('0x927c0', $formatter->format('0x0927c0'));
|
||||||
|
$this->assertEquals('0x927c0', $formatter->format('0x927c0'));
|
||||||
|
$this->assertEquals('0x927c0', $formatter->format('600000'));
|
||||||
|
$this->assertEquals('0x927c0', $formatter->format(600000));
|
||||||
|
|
||||||
|
$this->assertEquals('0xea60', $formatter->format('0x0ea60'));
|
||||||
|
$this->assertEquals('0xea60', $formatter->format('0xea60'));
|
||||||
|
$this->assertEquals('0xea60', $formatter->format(0x0ea60));
|
||||||
|
$this->assertEquals('0xea60', $formatter->format('60000'));
|
||||||
|
$this->assertEquals('0xea60', $formatter->format(60000));
|
||||||
|
|
||||||
|
$this->assertEquals('0x0', $formatter->format(0x00));
|
||||||
|
$this->assertEquals('0x0', $formatter->format('0x00'));
|
||||||
|
$this->assertEquals('0x0', $formatter->format('0x0'));
|
||||||
|
$this->assertEquals('0x0', $formatter->format('0'));
|
||||||
|
$this->assertEquals('0x0', $formatter->format(0));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user