コード例 #1
0
 public function testSaveRates()
 {
     $this->specify("должен удалять из базы курсы с тем же типом операции, типом валют и датой что и сохраняемые", function () {
         $rates = (include __DIR__ . '/../_data/card_rates.php');
         $date = new \DateTime();
         $oldRate = ['type' => 'card', 'date' => $date->format('Y-m-d'), 'curr' => 'USD', 'count' => 100, 'buy' => '9999.99', 'sale' => '8888.88', 'nbu' => '7777.7777'];
         $hash = md5(json_encode($oldRate));
         $oldRate['md5'] = $hash;
         $I = $this->tester;
         $I->haveInDatabase('t_exchange_rates', $oldRate);
         $dbh = $this->getModule('Db')->dbh;
         $db = new DbiTester($dbh);
         $er = new ExchangeRates($db);
         $er->parse($this->data('card.xls'));
         $er->save();
         $I->dontSeeInDatabase('t_exchange_rates', $oldRate);
     });
     $this->specify("должен сохранять курсы валют в базу", function () {
         $rates = (include __DIR__ . '/../_data/card_rates.php');
         $I = $this->tester;
         $dbh = $this->getModule('Db')->dbh;
         $db = new DbiTester($dbh);
         $er = new ExchangeRates($db);
         $er->parse($this->data('card.xls'));
         $er->save();
         $I->seeInDatabase('t_exchange_rates', array_pop($rates));
     });
 }
コード例 #2
0
 public function testImport()
 {
     $this->specify("должен бросать исключение если файлы импорта не существуют", function () {
         $er = new ExchangeRates();
         $er->parse('fail.file');
     }, ['throws' => 'PHPExcel_Reader_Exception']);
     $this->specify("должен бросать исключение если не возможно определить какие курсы валют в нем содержатся", function () {
         $er = new ExchangeRates();
         $er->parse($this->data('wrong.xls'));
     }, ['throws' => 'Matchish\\Exceptions\\ExchangeRatesParseException']);
     $this->specify("должен правильно определять тип курсов в файле", function ($filename, $parserClassName) {
         Stub::make($parserClassName, array('parse' => Stub::once(function () {
             return [];
         })));
         $er = new ExchangeRates();
         $er->parse($this->data($filename));
     }, ['examples' => [['cash.xls', '\\Matchish\\ExchangeRatesCashParser'], ['card.xls', '\\Matchish\\ExchangeRatesCardParser']]]);
     $this->specify("должен принимать массив имен файлов", function () {
         $er = new ExchangeRates();
         $er->parse([$this->data('cash.xls'), $this->data('card.xls')]);
     });
 }