public function testGetTotalRate() { $tax = \XLite\Core\Database::getRepo('XLite\\Module\\CDev\\VAT\\Model\\Tax')->getTax(); foreach ($tax->getRates() as $rate) { \XLite\Core\Database::getEM()->remove($rate); } $tax->getRates()->clear(); $tax->setEnabled(true); $rate = new \XLite\Module\CDev\VAT\Model\Tax\Rate(); $rate->setValue(10); $rate->setPosition(1); \XLite\Core\Database::getEM()->persist($rate); $tax->addRates($rate); $rate->setTax($tax); $rate = new \XLite\Module\CDev\VAT\Model\Tax\Rate(); $rate->setValue(20); $rate->setPosition(0); \XLite\Core\Database::getEM()->persist($rate); $tax->addRates($rate); $rate->setTax($tax); $memberships = \XLite\Core\Database::getRepo('XLite\\Model\\Membership')->findAll(); $membership = array_shift($memberships); $rate->setMembership($membership); $tax->setVATMembership($membership); \XLite\Core\Database::getEM()->flush(); $method = new \XLite\Model\Shipping\Method(); $method->setEnabled(true); $rate = new \XLite\Model\Shipping\Rate(); $rate->setBaseRate(10); $rate->setMarkupRate(10); $rate->setMethod($method); $this->assertEquals(16.67, \XLite::getInstance()->getCurrency()->formatValue($rate->getTotalRate()), 'check cost'); }
/** * testCreate * * @return void * @access public * @see ____func_see____ * @since 1.0.0 */ public function testCreate() { // Prepare data for rate $method = $this->getMethodByName('Courier'); $methodName = $method->getName(); $markups = \XLite\Core\Database::getRepo('XLite\\Model\\Shipping\\Markup')->findAll(); $this->assertTrue(0 < count($markups), 'markups list length checking'); $markup = array_shift($markups); $markupId = $markup->getMarkupId(); unset($markups); $extraData = new \XLite\Core\CommonCell(); $extraData->testparam1 = 'test value 1'; $extraData->testparam2 = 'test value 2'; $newRate = new \XLite\Model\Shipping\Rate(); $newRate->setMethod($method); $newRate->setBaseRate(100); $newRate->setMarkup($markup); $newRate->setMarkupRate(200); $newRate->setExtraData($extraData); // Check all parameters $this->assertEquals($markupId, $newRate->getMarkup()->getMarkupId(), 'Markup wrong'); $this->assertEquals(100, $newRate->getBaseRate(), 'Base rate wrong'); $this->assertEquals(200, $newRate->getMarkupRate(), 'Markup rate wrong'); $this->assertEquals(300, $newRate->getTotalRate(), 'Total rate wrong'); $this->assertEquals('test value 1', $newRate->getExtraData()->testparam1, 'Extra data #1 wrong'); $this->assertEquals('test value 2', $newRate->getExtraData()->testparam2, 'Extra data #2 wrong'); $this->assertEquals($methodName, $newRate->getMethodName(), 'getMethodName() returned wrong value'); }