Esempio n. 1
0
 public function testAddItem()
 {
     $order = new \XLite\Model\Order();
     $profiles = \XLite\Core\Database::getRepo('XLite\\Model\\Profile')->findAll();
     $profile = array_shift($profiles);
     unset($profiles);
     $order->map($this->testOrder);
     $order->setCurrency(\XLite\Core\Database::getRepo('XLite\\Model\\Currency')->find(840));
     $order->setDate(time());
     $item = new \XLite\Model\OrderItem();
     $item->setProduct($this->getProduct());
     $item->setAmount(1);
     $item->setPrice($this->getProduct()->getPrice());
     $this->assertTrue($order->addItem($item), 'check add item');
     $this->assertEquals(1, $order->getItems()->count(), 'check items length');
     $this->assertEquals(1, $order->getItems()->get(0)->getAmount(), 'check item amount');
     $item = new \XLite\Model\OrderItem();
     $item->setProduct($this->getProduct());
     $item->setAmount(1);
     $item->setPrice($this->getProduct()->getPrice());
     $this->assertTrue($order->addItem($item), 'check add item #2');
     $this->assertEquals(1, $order->getItems()->count(), 'check items length #2');
     $this->assertEquals(2, $order->getItems()->get(0)->getAmount(), 'check item amount #2');
     \XLite\Core\Database::getEM()->persist($order);
     \XLite\Core\Database::getEM()->flush();
     $item = new \XLite\Model\FakeOrderItem();
     $item->setProduct($this->getProduct());
     $item->setAmount(1);
     $item->setPrice($this->getProduct()->getPrice());
     $item->setInvalidFake();
     $this->assertFalse($order->addItem($item), 'check add item #3');
     $this->assertEquals($order::NOT_VALID_ERROR, $order->getAddItemError(), 'check error text');
     \XLite\Core\Database::getEM()->remove($order);
     \XLite\Core\Database::getEM()->flush();
 }