From a8f404421f3e404ccd285da861a8cb25f3642f31 Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Thu, 14 Jan 2016 20:40:31 -0500 Subject: Fix bug: unable to set currency rate with Postgres --- tests/units/Model/CurrencyTest.php | 46 +++++++++++++++++++++++++ tests/units/Validator/CurrencyValidatorTest.php | 27 +++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 tests/units/Model/CurrencyTest.php create mode 100644 tests/units/Validator/CurrencyValidatorTest.php (limited to 'tests/units') diff --git a/tests/units/Model/CurrencyTest.php b/tests/units/Model/CurrencyTest.php new file mode 100644 index 00000000..ee11c0fb --- /dev/null +++ b/tests/units/Model/CurrencyTest.php @@ -0,0 +1,46 @@ +container); + $currencies = $currencyModel->getAll(); + $this->assertCount(0, $currencies); + + $this->assertNotFalse($currencyModel->create('USD', 9.9)); + $currencies = $currencyModel->getAll(); + $this->assertCount(1, $currencies); + $this->assertEquals('USD', $currencies[0]['currency']); + $this->assertEquals(9.9, $currencies[0]['rate']); + } + + public function testCreate() + { + $currencyModel = new Currency($this->container); + $this->assertNotFalse($currencyModel->create('EUR', 1.2)); + $this->assertNotFalse($currencyModel->create('EUR', 1.5)); + } + + public function testUpdate() + { + $currencyModel = new Currency($this->container); + $this->assertNotFalse($currencyModel->create('EUR', 1.1)); + $this->assertNotFalse($currencyModel->update('EUR', 2.2)); + } + + public function testGetPrice() + { + $currencyModel = new Currency($this->container); + + $this->assertEquals(123, $currencyModel->getPrice('USD', 123)); + + $this->assertNotFalse($currencyModel->create('EUR', 0.5)); + $this->assertEquals(50.0, $currencyModel->getPrice('EUR', 100)); + $this->assertEquals(50.0, $currencyModel->getPrice('EUR', 100)); // test with cached result + } +} diff --git a/tests/units/Validator/CurrencyValidatorTest.php b/tests/units/Validator/CurrencyValidatorTest.php new file mode 100644 index 00000000..39c06d44 --- /dev/null +++ b/tests/units/Validator/CurrencyValidatorTest.php @@ -0,0 +1,27 @@ +container); + $result = $validator->validateCreation(array()); + $this->assertFalse($result[0]); + + $result = $validator->validateCreation(array('currency' => 'EUR')); + $this->assertFalse($result[0]); + + $result = $validator->validateCreation(array('rate' => 1.9)); + $this->assertFalse($result[0]); + + $result = $validator->validateCreation(array('currency' => 'EUR', 'rate' => 'foobar')); + $this->assertFalse($result[0]); + + $result = $validator->validateCreation(array('currency' => 'EUR', 'rate' => 1.25)); + $this->assertTrue($result[0]); + } +} -- cgit v1.2.3