public function testParseXml()
 {
     $xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><GetResponse><value>42</value>></GetResponse>";
     $simpleXmlElement = $this->carrier->parseXml($xmlString);
     $this->assertEquals('GetResponse', $simpleXmlElement->getName());
     $this->assertEquals(42, (int) $simpleXmlElement->value);
     $this->assertInstanceOf('SimpleXMLElement', $simpleXmlElement);
     $customSimpleXmlElement = $this->carrier->parseXml($xmlString, 'Magento\\Shipping\\Model\\Simplexml\\Element');
     $this->assertInstanceOf('Magento\\Shipping\\Model\\Simplexml\\Element', $customSimpleXmlElement);
 }
 /**
  * @expectedException \Magento\Framework\Exception\LocalizedException
  * @expectedExceptionMessage Security validation of XML document has been failed.
  */
 public function testParseXmlXQBXml()
 {
     $xmlString = '<?xml version="1.0"?>
         <!DOCTYPE test [
           <!ENTITY value "value">
           <!ENTITY value1 "&value;&value;&value;&value;&value;&value;&value;&value;&value;&value;">
           <!ENTITY value2 "&value1;&value1;&value1;&value1;&value1;&value1;&value1;&value1;&value1;&value1;">
         ]>
         <test>&value2;</test>';
     $this->carrier->parseXml($xmlString);
 }
Esempio n. 3
0
 /**
  * @covers \Magento\Shipping\Model\Shipping::composePackagesForCarrier
  */
 public function testComposePackages()
 {
     $this->carrier->expects($this->any())->method('getConfigData')->will($this->returnCallback(function ($key) {
         $configData = ['max_package_weight' => 10, 'showmethod' => 1];
         return isset($configData[$key]) ? $configData[$key] : 0;
     }));
     $product = $this->getMock('Magento\\Catalog\\Model\\Product', [], [], '', false);
     $product->expects($this->any())->method('getId')->will($this->returnValue($this->productId));
     $item = $this->getMockBuilder('\\Magento\\Sales\\Model\\Quote\\Item')->disableOriginalConstructor()->setMethods(['getProduct', 'getQty', 'getWeight', '__wakeup'])->getMock();
     $item->expects($this->any())->method('getProduct')->will($this->returnValue($product));
     $request = new RateRequest();
     $request->setData('all_items', [$item]);
     $request->setData('dest_postcode', 1);
     /** Testable service calls to CatalogInventory module */
     $this->stockItemService->expects($this->atLeastOnce())->method('getStockItem')->with($this->productId);
     $this->stockItemService->expects($this->atLeastOnce())->method('getEnableQtyIncrements')->with($this->productId)->will($this->returnValue(true));
     $this->stockItemService->expects($this->atLeastOnce())->method('getQtyIncrements')->with($this->productId)->will($this->returnValue(5));
     $this->stockItemData->expects($this->atLeastOnce())->method('getIsQtyDecimal')->will($this->returnValue(true));
     $this->stockItemData->expects($this->atLeastOnce())->method('getIsDecimalDivided')->will($this->returnValue(true));
     $this->carrier->proccessAdditionalValidation($request);
 }
 /**
  * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
  * @param \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory
  * @param \Psr\Log\LoggerInterface $logger
  * @param Security $xmlSecurity
  * @param \Magento\Shipping\Model\Simplexml\ElementFactory $xmlElFactory
  * @param \Magento\Shipping\Model\Rate\ResultFactory $rateFactory
  * @param \Magento\Quote\Model\Quote\Address\RateResult\MethodFactory $rateMethodFactory
  * @param \Magento\Shipping\Model\Tracking\ResultFactory $trackFactory
  * @param \Magento\Shipping\Model\Tracking\Result\ErrorFactory $trackErrorFactory
  * @param \Magento\Shipping\Model\Tracking\Result\StatusFactory $trackStatusFactory
  * @param \Magento\Directory\Model\RegionFactory $regionFactory
  * @param \Magento\Directory\Model\CountryFactory $countryFactory
  * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory
  * @param \Magento\Directory\Helper\Data $directoryData
  * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry
  * @param \Magento\Shipping\Helper\Carrier $carrierHelper
  * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
  * @param \Magento\Framework\HTTP\ZendClientFactory $httpClientFactory
  * @param array $data
  *
  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory, \Psr\Log\LoggerInterface $logger, Security $xmlSecurity, \Magento\Shipping\Model\Simplexml\ElementFactory $xmlElFactory, \Magento\Shipping\Model\Rate\ResultFactory $rateFactory, \Magento\Quote\Model\Quote\Address\RateResult\MethodFactory $rateMethodFactory, \Magento\Shipping\Model\Tracking\ResultFactory $trackFactory, \Magento\Shipping\Model\Tracking\Result\ErrorFactory $trackErrorFactory, \Magento\Shipping\Model\Tracking\Result\StatusFactory $trackStatusFactory, \Magento\Directory\Model\RegionFactory $regionFactory, \Magento\Directory\Model\CountryFactory $countryFactory, \Magento\Directory\Model\CurrencyFactory $currencyFactory, \Magento\Directory\Helper\Data $directoryData, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, CarrierHelper $carrierHelper, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, \Magento\Framework\HTTP\ZendClientFactory $httpClientFactory, array $data = [])
 {
     $this->_carrierHelper = $carrierHelper;
     $this->_productCollectionFactory = $productCollectionFactory;
     $this->_httpClientFactory = $httpClientFactory;
     parent::__construct($scopeConfig, $rateErrorFactory, $logger, $xmlSecurity, $xmlElFactory, $rateFactory, $rateMethodFactory, $trackFactory, $trackErrorFactory, $trackStatusFactory, $regionFactory, $countryFactory, $currencyFactory, $directoryData, $stockRegistry, $data);
 }
Esempio n. 5
0
 /**
  * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
  * @param \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory
  * @param \Psr\Log\LoggerInterface $logger
  * @param Security $xmlSecurity
  * @param \Magento\Shipping\Model\Simplexml\ElementFactory $xmlElFactory
  * @param \Magento\Shipping\Model\Rate\ResultFactory $rateFactory
  * @param \Magento\Quote\Model\Quote\Address\RateResult\MethodFactory $rateMethodFactory
  * @param \Magento\Shipping\Model\Tracking\ResultFactory $trackFactory
  * @param \Magento\Shipping\Model\Tracking\Result\ErrorFactory $trackErrorFactory
  * @param \Magento\Shipping\Model\Tracking\Result\StatusFactory $trackStatusFactory
  * @param \Magento\Directory\Model\RegionFactory $regionFactory
  * @param \Magento\Directory\Model\CountryFactory $countryFactory
  * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory
  * @param \Magento\Directory\Helper\Data $directoryData
  * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry
  * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  * @param \Magento\Framework\Module\Dir\Reader $configReader
  * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
  * @param array $data
  *
  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Quote\Model\Quote\Address\RateResult\ErrorFactory $rateErrorFactory, \Psr\Log\LoggerInterface $logger, Security $xmlSecurity, \Magento\Shipping\Model\Simplexml\ElementFactory $xmlElFactory, \Magento\Shipping\Model\Rate\ResultFactory $rateFactory, \Magento\Quote\Model\Quote\Address\RateResult\MethodFactory $rateMethodFactory, \Magento\Shipping\Model\Tracking\ResultFactory $trackFactory, \Magento\Shipping\Model\Tracking\Result\ErrorFactory $trackErrorFactory, \Magento\Shipping\Model\Tracking\Result\StatusFactory $trackStatusFactory, \Magento\Directory\Model\RegionFactory $regionFactory, \Magento\Directory\Model\CountryFactory $countryFactory, \Magento\Directory\Model\CurrencyFactory $currencyFactory, \Magento\Directory\Helper\Data $directoryData, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\Module\Dir\Reader $configReader, \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory, array $data = [])
 {
     $this->_storeManager = $storeManager;
     $this->_productCollectionFactory = $productCollectionFactory;
     parent::__construct($scopeConfig, $rateErrorFactory, $logger, $xmlSecurity, $xmlElFactory, $rateFactory, $rateMethodFactory, $trackFactory, $trackErrorFactory, $trackStatusFactory, $regionFactory, $countryFactory, $currencyFactory, $directoryData, $stockRegistry, $data);
     $wsdlBasePath = $configReader->getModuleDir(Dir::MODULE_ETC_DIR, 'Magento_Fedex') . '/wsdl/';
     $this->_shipServiceWsdl = $wsdlBasePath . 'ShipService_v10.wsdl';
     $this->_rateServiceWsdl = $wsdlBasePath . 'RateService_v10.wsdl';
     $this->_trackServiceWsdl = $wsdlBasePath . 'TrackService_v5.wsdl';
 }
Esempio n. 6
0
 /**
  * Get Container Types, that could be customized for UPS carrier
  *
  * @return array
  */
 public function getCustomizableContainerTypes()
 {
     $result = [];
     $containerTypes = $this->configHelper->getCode('container');
     foreach (parent::getCustomizableContainerTypes() as $containerType) {
         $result[$containerType] = $containerTypes[$containerType];
     }
     return $result;
 }