/** * 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); }
/** * 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); }
/** * Performs validation before save * * @param \Magento\Framework\Model\AbstractModel $object * @return $this * @throws \Magento\Framework\Model\Exception */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { parent::_beforeSave($object); $errors = $this->validator->validate($object); if (!empty($errors)) { throw new \Magento\Framework\Model\Exception(__("Cannot save track") . ":\n" . implode("\n", $errors)); } return $this; }
/** * Performs validation before save * * @param \Magento\Framework\Model\AbstractModel $object * @return $this * @throws \Magento\Framework\Exception\LocalizedException */ protected function _beforeSave(\Magento\Framework\Model\AbstractModel $object) { /** @var \Magento\Sales\Model\Order\Shipment\Track $object */ if (!$object->getParentId() && $object->getShipment()) { $object->setParentId($object->getShipment()->getId()); } parent::_beforeSave($object); $errors = $this->validator->validate($object); if (!empty($errors)) { throw new \Magento\Framework\Exception\LocalizedException(__("Cannot save track:\n%1", implode("\n", $errors))); } return $this; }