clearRegistry(); require_once 'Zend/Cache.php'; $this->_cache = Zend_Cache::factory('Core', 'File', array('lifetime' => 120, 'automatic_serialization' => true), array('cache_dir' => dirname(__FILE__) . '/../../_files/')); Zend_Currency::setCache($this->_cache); $this->helper = new Zend_View_Helper_Currency('de_AT'); } /** * Tears down the fixture, for example, close a network connection. * This method is called after a test is executed. * * @return void */ public function tearDown() { unset($this->helper); $this->_cache->clean(Zend_Cache::CLEANING_MODE_ALL); $this->clearRegistry(); } public function testCurrencyObjectPassedToConstructor() { $curr = new Zend_Currency('de_AT'); $helper = new Zend_View_Helper_Currency($curr); $this->assertEquals('€ 1.234,56', $helper->currency(1234.56)); $this->assertEquals('€ 0,12', $helper->currency(0.123)); } public function testLocalCurrencyObjectUsedWhenPresent() { $curr = new Zend_Currency('de_AT'); $this->helper->setCurrency($curr); $this->assertEquals('€ 1.234,56', $this->helper->currency(1234.56)); $this->assertEquals('€ 0,12', $this->helper->currency(0.123)); } public function testCurrencyObjectInRegistryUsedInAbsenceOfLocalCurrencyObject() { $curr = new Zend_Currency('de_AT'); Zend_Registry::set('Zend_Currency', $curr); $this->assertEquals('€ 1.234,56', $this->helper->currency(1234.56)); } public function testPassingNonNullNonCurrencyObjectToConstructorThrowsException() { try { $helper = new Zend_View_Helper_Currency('something'); } catch (Exception $e) { if (substr($e->getMessage(), 0, 15) == 'No region found') { $this->assertContains('within the locale', $e->getMessage()); } else { $this->assertContains('not found', $e->getMessage()); } } } public function testPassingNonCurrencyObjectToSetCurrencyThrowsException() { try { $this->helper->setCurrency('something'); } catch (Exception $e) { if (substr($e->getMessage(), 0, 15) == 'No region found') { $this->assertContains('within the locale', $e->getMessage()); } else { $this->assertContains('not found', $e->getMessage()); } } } public function testCanOutputCurrencyWithOptions() { $curr = new Zend_Currency('de_AT'); $this->helper->setCurrency($curr); $this->assertEquals("€ 1.234,56", $this->helper->currency(1234.56, "de_AT")); } public function testCurrencyObjectNullByDefault() { $this->assertNotNull($this->helper->getCurrency()); } public function testLocalCurrencyObjectIsPreferredOverRegistry() { $currReg = new Zend_Currency('de_AT'); Zend_Registry::set('Zend_Currency', $currReg); $this->helper = new Zend_View_Helper_Currency(); $this->assertSame($currReg, $this->helper->getCurrency()); $currLoc = new Zend_Currency('en_US'); $this->helper->setCurrency($currLoc); $this->assertSame($currLoc, $this->helper->getCurrency()); $this->assertNotSame($currLoc, $currReg); } public function testHelperObjectReturnedWhenNoArgumentsPassed() { $helper = $this->helper->currency(); $this->assertSame($this->helper, $helper); $currLoc = new Zend_Currency('de_AT'); $this->helper->setCurrency($currLoc); $helper = $this->helper->currency(); $this->assertSame($this->helper, $helper); } } // Call Zend_View_Helper_TranslateTest::main() if this source file is executed directly. if (PHPUnit_MAIN_METHOD == "Zend_View_Helper_TranslateTest::main") { Zend_View_Helper_TranslateTest::main(); }