/** * 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); }
/** * 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); }
/** * 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); }
/** * 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; }
/** * 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]); }
/** * 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()); }
/** * @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; }
/** * @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()); }
/** * 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)); }
/** * @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; }
/** * 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)); }
/** * 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()]); }
/** * 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); }