public function testGetRequestParamsWithAdditionalParameters()
 {
     $fakePayment = Mage::getModel('sales/order_payment');
     $fakePayment->setOrder(MAge::getModel('sales/order'));
     $fakePayment->setAdditionalInformation(array('paymentId' => '4711'));
     $fakeInvoice = Mage::getModel('sales/order_invoice');
     $fakePayment->setInvoice($fakeInvoice);
     $arrInfo = array('operation' => 'capture');
     $amount = 10;
     $opsPaymentMethod = Mage::getModel('ops/payment_openInvoiceNl');
     $captureParameterModel = Mage::getModel('ops/backend_operation_capture_parameter');
     $requestParams = $captureParameterModel->getRequestParams($opsPaymentMethod, $fakePayment, $amount, $arrInfo);
     $this->assertArrayHasKey('AMOUNT', $requestParams);
     $this->assertArrayHasKey('PAYID', $requestParams);
     $this->assertArrayHasKey('OPERATION', $requestParams);
     $this->assertArrayHasKey('CURRENCY', $requestParams);
     $this->assertEquals(1000, $requestParams['AMOUNT']);
     $this->assertEquals(4711, $requestParams['PAYID']);
     $this->assertEquals('capture', $requestParams['OPERATION']);
     $this->assertEquals(Mage::app()->getStore($fakePayment->getOrder()->getStoreId())->getBaseCurrencyCode(), $requestParams['CURRENCY']);
 }
 public function testExtractAdditionalParamsWithShipping()
 {
     $itemsContainer = Mage::getModel('sales/order_shipment');
     $this->assertTrue(is_array($this->openInvoiceNlModel->extractAdditionalParams($itemsContainer)));
     $this->assertEquals(0, count($this->openInvoiceNlModel->extractAdditionalParams($itemsContainer)));
     $itemsContainer = Mage::getModel('sales/order_invoice');
     $this->assertTrue(is_array($this->openInvoiceNlModel->extractAdditionalParams($itemsContainer)));
     $this->assertEquals(0, count($this->openInvoiceNlModel->extractAdditionalParams($itemsContainer)));
     $orderItem = Mage::getModel('sales/order_item');
     $orderItem->setId(1);
     $orderItem->setQtyOrdered(2);
     $item = Mage::getModel('sales/order_invoice_item');
     $item->setOrderItemId(1);
     $item->setOrderItem($orderItem);
     $item->setName('Item');
     $item->setBasePriceInclTax(19.99);
     $item->setQty(2);
     $item->setTaxPercent(19);
     $itemsContainer->addItem($item);
     $itemsContainer->setBaseShippingInclTax(10.0);
     $order = MAge::getModel('sales/order');
     $order->setShippingDescription('foo');
     $payment = Mage::getModel('sales/order_payment');
     $payment->setMethod('ops_openInvoiceNl');
     $order->setPayment($payment);
     $itemsContainer->setOrder($order);
     $result = $this->openInvoiceNlModel->extractAdditionalParams($itemsContainer);
     $this->assertTrue(is_array($result));
     $this->assertTrue(0 < count($result));
     $this->assertArrayHasKey('ITEMID1', $result);
     $this->assertEquals(1, $result['ITEMID1']);
     $this->assertArrayHasKey('ITEMNAME1', $result);
     $this->assertEquals('Item', $result['ITEMNAME1']);
     $this->assertArrayHasKey('ITEMPRICE1', $result);
     $this->assertEquals(1999, $result['ITEMPRICE1']);
     $this->assertArrayHasKey('ITEMVATCODE1', $result);
     $this->assertEquals('19%', $result['ITEMVATCODE1']);
     $this->assertArrayHasKey('TAXINCLUDED1', $result);
     $this->assertEquals(1, $result['TAXINCLUDED1']);
     $this->assertArrayHasKey('ITEMID2', $result);
     $this->assertEquals('SHIPPING', $result['ITEMID2']);
     $this->assertArrayHasKey('ITEMNAME2', $result);
     $this->assertEquals(substr($order->getShippingDescription(), 0, 30), $result['ITEMNAME2']);
     $this->assertArrayHasKey('ITEMPRICE2', $result);
     $this->assertEquals(Mage::helper('ops/data')->getAmount(10.0), $result['ITEMPRICE2']);
     $this->assertArrayHasKey('ITEMQUANT2', $result);
     $this->assertEquals(1, $result['ITEMQUANT2']);
     $this->assertArrayHasKey('ITEMVATCODE2', $result);
     $this->assertEquals(floatval($payment->getMethodInstance()->getShippingTaxRate($order)) . '%', $result['ITEMVATCODE2']);
     $this->assertArrayHasKey('TAXINCLUDED2', $result);
     $this->assertEquals(1, $result['TAXINCLUDED2']);
 }