/**
  * verify
  * - shipping discounts are applied to the shipping pricegroup
  */
 public function testBuildOrderItemsWithShippingDiscounts()
 {
     $lineNumber = 1;
     $this->addressStub->setEbayEnterpriseOrderDiscountData(['1,2,3,4' => ['id' => '1,2,3,4']]);
     $handler = $this->getModelMockBuilder('ebayenterprise_order/create_orderitem')->setMethods(['loadOrderItemOptions', 'prepareMerchandisePricing'])->setConstructorArgs([['shipping_helper' => $this->shippingHelper]])->getMock();
     $handler->expects($this->any())->method('loadOrderItemOptions')->will($this->returnValue($this->optionValueCollectionStub));
     $handler->expects($this->any())->method('prepareMerchandisePricing')->will($this->returnSelf());
     $handler->buildOrderItem($this->payload, $this->itemStub, $this->orderStub, $this->addressStub, $lineNumber, true);
     $pg = $this->payload->getShippingPricing();
     $this->assertNotNull($pg);
     $this->assertCount(1, $pg->getDiscounts());
 }
 /**
  * Add tax data for tax totals for shipping prices and discounts.
  *
  * @return self
  */
 protected function _addShippingTaxes()
 {
     $taxes = $this->_getTaxRecordsBySource(EbayEnterprise_Tax_Model_Record::SOURCE_SHIPPING);
     $discountTaxes = $this->_getTaxRecordsBySource(EbayEnterprise_Tax_Model_Record::SOURCE_SHIPPING_DISCOUNT);
     if ($taxes || $discountTaxes) {
         $priceGroup = $this->_orderItemPayload->getShippingPricing() ?: $this->_orderItemPayload->getEmptyPriceGroup();
         $priceGroup->setTaxClass($this->_taxConfig->shippingTaxClass);
         $this->_addTaxRecordsToContainer($taxes, $priceGroup)->_addDiscountTaxRecords($discountTaxes, $priceGroup);
         $this->_orderItemPayload->setShippingPricing($priceGroup);
     }
     return $this;
 }