Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F1167242
kFormatterTest.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Sep 23, 7:58 AM
Size
1 KB
Mime Type
text/x-php
Expires
Thu, Sep 25, 7:58 AM (1 d, 2 h)
Engine
blob
Format
Raw Data
Handle
754035
Attached To
rINP In-Portal
kFormatterTest.php
View Options
<?php
final
class
kFormatterTest
extends
AbstractTestCase
{
/**
* @dataProvider cutZerosDataProvider
*/
public
function
testCutZeros
(
$raw_number
,
$formatted_number
,
array
$field_options
)
{
$formatter
=
new
kFormatter
();
$item_prophecy
=
$this
->
prophesize
(
'kDBItem'
);
$item_prophecy
->
GetFieldOptions
(
'FieldName'
)->
willReturn
(
array
(
'type'
=>
'float'
,
'format'
=>
'%01.6f'
,
)
+
$field_options
);
$item
=
$item_prophecy
->
reveal
();
$this
->
assertSame
(
$formatted_number
,
$formatter
->
Format
(
$raw_number
,
'FieldName'
,
$item
));
}
public
function
cutZerosDataProvider
()
{
return
array
(
'long'
=>
array
(
'12.345000'
,
'12.345'
,
array
(
'cut_zeros'
=>
1
)),
'short'
=>
array
(
'12.300000'
,
'12.3'
,
array
(
'cut_zeros'
=>
1
)),
'exact+leading_zero'
=>
array
(
'12.030000'
,
'12.03'
,
array
(
'cut_zeros'
=>
1
)),
'very_long'
=>
array
(
'12.030050'
,
'12.03005'
,
array
(
'cut_zeros'
=>
1
)),
'no_decimals'
=>
array
(
'12.000000'
,
'12'
,
array
(
'cut_zeros'
=>
1
)),
);
}
/**
* @dataProvider keepCentsDataProvider
*/
public
function
testKeepCents
(
$raw_number
,
$formatted_number
,
array
$field_options
)
{
$formatter
=
new
kFormatter
();
$item_prophecy
=
$this
->
prophesize
(
'kDBItem'
);
$item_prophecy
->
GetFieldOptions
(
'FieldName'
)->
willReturn
(
array
(
'type'
=>
'float'
,
'format'
=>
'%01.6f'
,
)
+
$field_options
);
$item
=
$item_prophecy
->
reveal
();
$this
->
assertSame
(
$formatted_number
,
$formatter
->
Format
(
$raw_number
,
'FieldName'
,
$item
));
}
public
function
keepCentsDataProvider
()
{
return
array
(
'long'
=>
array
(
'12.345000'
,
'12.345'
,
array
(
'keep_cents'
=>
2
)),
'short'
=>
array
(
'12.300000'
,
'12.30'
,
array
(
'keep_cents'
=>
2
)),
'exact+leading_zero'
=>
array
(
'12.030000'
,
'12.03'
,
array
(
'keep_cents'
=>
2
)),
'very_long'
=>
array
(
'12.030050'
,
'12.03005'
,
array
(
'keep_cents'
=>
2
)),
'no_decimals'
=>
array
(
'12.000000'
,
'12.00'
,
array
(
'keep_cents'
=>
2
)),
);
}
}
Event Timeline
Log In to Comment