Example #1
0
 /**
 * @test
 * @loadFixture testGetProduct
 * @dataProvider provider__testOrderSaveAfter
 *
 *  1. OrderSaveAfter
 *  2.  Mage::getModel('collpur/deal')
  ->load($dealId)
  ->processOrderItem($item);
 *  3. AW_Collpur_Model_Dealpurchases->connectWithFreeCoupons
 *
 * This the most important functions that should be tested
 * 
 */
 public function testOrderSaveAfter($data)
 {
     $orderMock = $this->getModelMock('sales/order', array('getAllItems'));
     /* Prepare array of fake sales order items */
     $orderItems = array();
     for ($i = 0; $i < 3; $i++) {
         $salesOrderMock = $this->getModelMock('sales/order_item', array('getProductOptionByCode', 'getId'));
         $itemData = new Varien_Object();
         $itemData->setDealId($data['dealId']);
         /* Prepare fake order for orderItem */
         $orderItem = new Varien_Object();
         $orderItem->setId($data['dealId']);
         $orderItem->setCustomerName('Test order customer');
         $orderItem->setCustomerId($data['dealId']);
         /*             * ********************************* */
         $salesOrderMock->expects($this->any())->method('getProductOptionByCode')->will($this->returnValue($itemData));
         $salesOrderMock->expects($this->any())->method('getId')->will($this->returnValue($data['dealId']));
         $salesOrderMock->setOrder($orderItem);
         $salesOrderMock->setData('qty_invoiced', $data['qtyToAdd']);
         $salesOrderMock->setData('qty_refunded', 0);
         $orderItems[] = $salesOrderMock;
     }
     $orderMock->expects($this->any())->method('getAllItems')->will($this->returnValue($orderItems));
     $observer = new Varien_Object();
     $observer->setOrder($orderMock);
     Mage::app()->getRequest()->setControllerName('sales_order_invoice');
     $exception = false;
     if ($data['uid'] == '003' || $data['uid'] == '001' || $data['uid'] == '004') {
         $this->setExpectedException('Mage_Core_Exception');
         $exception = true;
     }
     Mage::getModel('collpur/observer')->orderSaveAfter($observer);
     /*
     * If there was no exceiption during call of
     * Mage::getModel('collpur/deal')
      ->load($dealId)
      ->processOrderItem($item);
     * proceed with test
     *
     */
     if (!$exception) {
         /* Check that number of purchases generated correct */
         $purchasesCount = Mage::getResourceModel('collpur/dealpurchases_collection')->count();
         $this->assertEquals($purchasesCount, $data['qtyToAdd'], 'Incorrect purchases collection count');
         /*  Check that correct number of coupons were generated */
         $couponsCount = Mage::getResourceModel('collpur/coupon_collection')->count();
         $this->assertEquals($couponsCount, $data['qtyToAdd'], 'Incorrect coupons collection count');
     }
 }