/**
  * @depends testFindCurrencyByIso
  * @param Currency $c
  */
 public function testFormat(Currency $c)
 {
     if (false === $c instanceof Currency) {
         $this->markTestSkipped('We got something like not Currency');
     }
     $formatted = CurrencyHelper::format(100, $c);
     $this->assertEquals('100,00 $', $formatted);
 }
 /**
  * Using PHPUnit with static variables are painfully. Because of it this single test executes in different Class then others.
  */
 public function testGetMainCurrencyNotExists()
 {
     $data = [['name' => 'US Dollar', 'iso_code' => 'USD', 'convert_nominal' => 1, 'convert_rate' => 62.83, 'sort_order' => 1, 'format_string' => '$ #', 'thousands_sep' => '.', 'dec_point' => ',', 'is_main' => 0], 'Euro' => ['name' => 'Euro', 'iso_code' => 'EUR', 'convert_rate' => 71.31999999999999, 'format_string' => '€ #', 'is_main' => 0]];
     $storage = (new Currency())->getStorage();
     FunctionalHelper::flushStorage($storage);
     $this->assertFileNotExists($storage);
     CurrencyStorageHelper::generateStorage($data, $storage, Currency::className());
     $this->assertFileExists($storage);
     $c = CurrencyHelper::getMainCurrency();
     $this->assertNull($c);
     FunctionalHelper::flushCurrencyStorage();
 }
 public function actionChange()
 {
     $isoCode = Yii::$app->request->post('isoCode');
     if ($isoCode === null) {
         throw new BadRequestHttpException();
     }
     $newUserCurrency = CurrencyHelper::findCurrencyByIso($isoCode);
     if ($newUserCurrency !== null) {
         $oldUserCurrency = CurrencyHelper::getUserCurrency();
         CurrencyHelper::setUserCurrency($newUserCurrency);
         $event = new AfterUserCurrencyChangeEvent();
         $event->oldUserCurrency = $oldUserCurrency;
         $event->newUserCurrency = $newUserCurrency;
         CurrenciesModule::module()->trigger(CurrenciesModule::AFTER_USER_CURRENCY_CHANGE, $event);
     }
     return $this->redirect(Yii::$app->request->referrer);
 }
 /**
  * Get a user currency from session
  * @return Currency
  */
 public static function getUserCurrency()
 {
     if (static::$userCurrency === null) {
         $isoCode = Yii::$app->session->get(CurrenciesModule::CURRENCY_SESSION_KEY);
         $userCurrency = CurrencyHelper::findCurrencyByIso($isoCode);
         static::$userCurrency = $userCurrency !== null ? $userCurrency : static::getMainCurrency();
     }
     return static::$userCurrency;
 }