/**
  * Run test validate
  *
  * @param $trackDataMap
  * @param $trackData
  * @param $expectedWarnings
  * @dataProvider providerTrackData
  */
 public function testValidate($trackDataMap, $trackData, $expectedWarnings)
 {
     $this->trackModelMock->expects($this->any())->method('hasData')->will($this->returnValueMap($trackDataMap));
     $this->trackModelMock->expects($this->once())->method('getData')->will($this->returnValue($trackData));
     $actualWarnings = $this->validator->validate($this->trackModelMock);
     $this->assertEquals($expectedWarnings, $actualWarnings);
 }
Example #2
0
 /**
  * Retrieve tracking url with params
  *
  * @param  string $key
  * @param  \Magento\Sales\Model\Order|\Magento\Sales\Model\Order\Shipment|\Magento\Sales\Model\Order\Shipment\Track $model
  * @param  string $method Optional - method of a model to get id
  * @return string
  */
 protected function _getTrackingUrl($key, $model, $method = 'getId')
 {
     $urlPart = "{$key}:{$model->{$method}()}:{$model->getProtectCode()}";
     $params = ['_direct' => 'shipping/tracking/popup', '_query' => ['hash' => $this->urlEncoder->encode($urlPart)]];
     $storeModel = $this->_storeManager->getStore($model->getStoreId());
     return $storeModel->getUrl('', $params);
 }
Example #3
0
 /**
  * Test _beforeSaveMethod via save() with failed validation
  *
  * @expectedException \Magento\Framework\Exception\LocalizedException
  * @expectedExceptionMessage Cannot save track:
  */
 public function testSaveValidationFailed()
 {
     $this->validatorMock->expects($this->once())->method('validate')->with($this->equalTo($this->trackModelMock))->will($this->returnValue(['warning message']));
     $this->trackModelMock->expects($this->any())->method('getData')->willReturn([]);
     $this->trackResource->save($this->trackModelMock);
     $this->assertTrue(true);
 }
Example #4
0
 /**
  * Validate data
  *
  * @param \Magento\Sales\Model\Order\Shipment\Track $track
  * @return array
  */
 public function validate(Track $track)
 {
     $errors = [];
     $commentData = $track->getData();
     foreach ($this->required as $code => $label) {
         if (!$track->hasData($code)) {
             $errors[$code] = sprintf('%s is a required field', $label);
         } elseif (empty($commentData[$code])) {
             $errors[$code] = sprintf('%s can not be empty', $label);
         }
     }
     return $errors;
 }
Example #5
0
 /**
  * Set up
  */
 protected function setUp()
 {
     $this->trackModelMock = $this->getMock('Magento\\Sales\\Model\\Order\\Shipment\\Track', [], [], '', false);
     $this->appResourceMock = $this->getMock('Magento\\Framework\\App\\Resource', [], [], '', false);
     $this->adapterMock = $this->getMock('Magento\\Framework\\DB\\Adapter\\Pdo\\Mysql', [], [], '', false);
     $this->validatorMock = $this->getMock('Magento\\Sales\\Model\\Order\\Shipment\\Track\\Validator', [], [], '', false);
     $this->appResourceMock->expects($this->any())->method('getConnection')->will($this->returnValue($this->adapterMock));
     $this->adapterMock->expects($this->any())->method('describeTable')->will($this->returnValue([]));
     $this->adapterMock->expects($this->any())->method('insert');
     $this->adapterMock->expects($this->any())->method('lastInsertId');
     $this->trackModelMock->expects($this->any())->method('hasDataChanges')->will($this->returnValue(true));
     $this->trackModelMock->expects($this->any())->method('isSaveAllowed')->will($this->returnValue(true));
     $objectManager = new \Magento\TestFramework\Helper\ObjectManager($this);
     $this->trackResource = $objectManager->getObject('Magento\\Sales\\Model\\Resource\\Order\\Shipment\\Track', ['resource' => $this->appResourceMock, 'validator' => $this->validatorMock]);
 }
Example #6
0
 /**
  * Run test execute method (delete exception)
  */
 public function testExecuteDeleteFail()
 {
     $errors = ['error' => true, 'message' => 'Cannot delete tracking number.'];
     $this->shipmentLoad();
     $this->shipmentLoaderMock->expects($this->once())->method('load')->will($this->returnValue($this->shipmentMock));
     $this->shipmentTrackMock->expects($this->once())->method('delete')->will($this->throwException(new \Exception()));
     $this->representJson($errors);
     $this->assertNull($this->controller->execute());
 }
Example #7
0
 /**
  * @param \Magento\Framework\Model\Context $context
  * @param \Magento\Framework\Registry $registry
  * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
  * @param AttributeValueFactory $customAttributeFactory
  * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  * @param \Magento\Sales\Api\ShipmentRepositoryInterface $shipmentRepository
  * @param \Magento\Shipping\Model\CarrierFactory $carrierFactory
  * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
  * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
  * @param array $data
  *
  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 public function __construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory, AttributeValueFactory $customAttributeFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Sales\Api\ShipmentRepositoryInterface $shipmentRepository, \Magento\Shipping\Model\CarrierFactory $carrierFactory, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [])
 {
     parent::__construct($context, $registry, $extensionFactory, $customAttributeFactory, $storeManager, $shipmentRepository, $resource, $resourceCollection, $data);
     $this->_carrierFactory = $carrierFactory;
 }
Example #8
0
 /**
  * @param \Magento\Sales\Model\Order\Shipment\Track $track
  * @return $this
  */
 public function addTrack(\Magento\Sales\Model\Order\Shipment\Track $track)
 {
     $track->setShipment($this)->setParentId($this->getId())->setOrderId($this->getOrderId())->setStoreId($this->getStoreId());
     if (!$track->getId()) {
         $this->getTracksCollection()->addItem($track);
     }
     /**
      * Track saving is implemented in _afterSave()
      * This enforces \Magento\Framework\Model\AbstractModel::save() not to skip _afterSave()
      */
     $this->_hasDataChanges = true;
     return $this;
 }
 /**
  * @dataProvider isCustomDataProvider
  * @param bool $expectedResult
  * @param string $carrierCodeToSet
  */
 public function testIsCustom($expectedResult, $carrierCodeToSet)
 {
     $this->_model->setCarrierCode($carrierCodeToSet);
     $this->assertEquals($expectedResult, $this->_model->isCustom());
 }
Example #10
0
 /**
  * Test shipment add track service
  */
 public function testInvoke()
 {
     $this->trackConverterMock->expects($this->once())->method('getModel')->with($this->equalTo($this->dataObjectMock))->will($this->returnValue($this->dataModelMock));
     $this->dataModelMock->expects($this->once())->method('save');
     $this->assertTrue($this->shipmentAddTrack->invoke($this->dataObjectMock));
 }
Example #11
0
 /**
  * @param \Magento\Framework\Model\Context $context
  * @param \Magento\Framework\Registry $registry
  * @param \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate
  * @param \Magento\Framework\Stdlib\DateTime $dateTime
  * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  * @param \Magento\Sales\Model\Order\ShipmentFactory $shipmentFactory
  * @param \Magento\Shipping\Model\CarrierFactory $carrierFactory
  * @param \Magento\Framework\Model\Resource\AbstractResource $resource
  * @param \Magento\Framework\Data\Collection\Db $resourceCollection
  * @param array $data
  *
  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 public function __construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Stdlib\DateTime\TimezoneInterface $localeDate, \Magento\Framework\Stdlib\DateTime $dateTime, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Sales\Model\Order\ShipmentFactory $shipmentFactory, \Magento\Shipping\Model\CarrierFactory $carrierFactory, \Magento\Framework\Model\Resource\AbstractResource $resource = null, \Magento\Framework\Data\Collection\Db $resourceCollection = null, array $data = array())
 {
     parent::__construct($context, $registry, $localeDate, $dateTime, $storeManager, $shipmentFactory, $resource, $resourceCollection, $data);
     $this->_carrierFactory = $carrierFactory;
 }
Example #12
0
 /**
  * Test shipment remove track
  */
 public function testInvoke()
 {
     $this->trackRepositoryMock->expects($this->once())->method('get')->with($this->equalTo(1))->will($this->returnValue($this->trackMock));
     $this->trackMock->expects($this->once())->method('delete');
     $this->assertTrue($this->shipmentRemoveTrack->invoke(1));
 }
Example #13
0
 /**
  * Retrieve remove url
  *
  * @param \Magento\Sales\Model\Order\Shipment\Track $track
  * @return string
  */
 public function getRemoveUrl($track)
 {
     return $this->getUrl('adminhtml/*/removeTrack/', ['shipment_id' => $this->getShipment()->getId(), 'track_id' => $track->getId()]);
 }
Example #14
0
 /**
  * Retrieve tracking url with params
  *
  * @param  string $key
  * @param  \Magento\Sales\Model\Order|\Magento\Sales\Model\Order\Shipment|\Magento\Sales\Model\Order\Shipment\Track $model
  * @param  string $method Optional - method of a model to get id
  * @return string
  */
 protected function _getTrackingUrl($key, $model, $method = 'getId')
 {
     $urlPart = "{$key}:{$model->{$method}()}:{$model->getProtectCode()}";
     $param = array('hash' => $this->_coreData->urlEncode($urlPart));
     $storeModel = $this->_storeManager->getStore($model->getStoreId());
     return $storeModel->getUrl('shipping/tracking/popup', $param);
 }