setLocale($locale); $result = $translateObj->getLocale(); expect($result)->toEqual($locale); }); test('domain setter and getter', function (): void { $translateObj = new FOSSBilling\Translate(); $default = 'messages'; $result = $translateObj->getDomain(); expect($result)->toEqual($default); $newDomain = 'admin'; $result = $translateObj->setDomain($newDomain)->getDomain(); expect($result)->toEqual($newDomain); }); test('translate', function (): void { $text = 'Translate ME'; $translateObj = new FOSSBilling\Translate(); $translateObj->setup(); $result = __trans($text); expect($result)->toEqual($text); }); test('setup configures the default locale used by Twig Intl filters', function (): void { $defaultLocale = Locale::getDefault(); Locale::setDefault('en_US_POSIX'); try { $translateObj = new FOSSBilling\Translate(); $translateObj->setLocale('en_US'); $translateObj->setup(); $intlExtension = new Twig\Extra\Intl\IntlExtension(); expect(Locale::getDefault())->toBe('en_US') ->and($intlExtension->formatCurrency(5, 'USD'))->toBe('$5.00'); } finally { Locale::setDefault($defaultLocale); } });