4 * Class CRM_Core_Smarty_plugins_CrmMoneyTest
7 class CRM_Core_Smarty_plugins_CrmMoneyTest
extends CiviUnitTestCase
{
8 public function setUp() {
10 require_once 'CRM/Core/Smarty.php';
12 // Templates should normally be file names, but for unit-testing it's handy to use "string:" notation
13 require_once 'CRM/Core/Smarty/resources/String.php';
14 civicrm_smarty_register_string_resource();
20 public function moneyCases() {
22 $cases[] = ['$ 4.00', '{assign var="amount" value="4.00"}{$amount|crmMoney:USD}'];
23 $cases[] = ['€ 1,234.00', '{assign var="amount" value="1234.00"}{$amount|crmMoney:EUR}'];
25 '$ <input size="10" style="background-color:#EBECE4" readonly="readonly" name="eachPaymentAmount" type="text" id="eachPaymentAmount" class="crm-form-text">',
26 '{assign var="amount" value=\'<input size="10" style="background-color:#EBECE4" readonly="readonly" name="eachPaymentAmount" type="text" id="eachPaymentAmount" class="crm-form-text">\'}{$amount|crmMoney:USD}'
32 * @dataProvider moneyCases
36 public function testMoney($expected, $input) {
37 $smarty = CRM_Core_Smarty
::singleton();
38 $actual = $smarty->fetch('string:' . $input);
39 $this->assertEquals($expected, $actual, "Process input=[$input]");