/** * @param Varien_Controller_Action * @param Mage_Catalog_Model_Product */ protected function doAddBoltPatterns($controller, Elite_Vaf_Model_Catalog_Product $product) { $wheelProduct = new Elite_Vafwheel_Model_Catalog_Product($product); $wheelProduct->removeBoltPatterns(); /** @todo get under test */ if (isset($_FILES['boltpatterncsv']) && $_FILES['boltpatterncsv']['tmp_name'] && $_FILES['boltpatterncsv']['error'] == 0) { $importer = new Elite_Vafwheel_Model_Catalog_Product_Import($_FILES['boltpatterncsv']['tmp_name']); $importer->import(); } else { $patterns = $controller->getRequest()->getParam('wheel_side_pattern') ? $controller->getRequest()->getParam('wheel_side_pattern') : $controller->getRequest()->getParam('multipatterns'); $patterns = explode("\n", $patterns); foreach ($patterns as $k => $pattern) { $pattern = str_replace("\r", '', $pattern); if (!trim($pattern)) { return; } $boltPattern = Elite_Vafwheel_Model_BoltPattern::create($pattern); if (!is_array($boltPattern)) { $boltPattern = array($boltPattern); } foreach ($boltPattern as $each) { $wheelProduct->addBoltPattern($each); } } } }
function importRow($row) { $sku = $this->getFieldValue('sku', $row); $productId = $this->productId($sku); $product = new Elite_Vafwheel_Model_Catalog_Product(new Elite_Vaf_Model_Catalog_Product()); $product->setId($productId); $boltPattern = $this->wheelSize($row); $product->addBoltPattern($boltPattern); }
function testAddsAndRemovesBoltPattern() { $this->setRequestParams(array('multipatterns' => "4x114.3\n5x114.3")); $binder = new Elite_Vafwheel_Observer_ProductBoltBinder(); $product = new Elite_Vaf_Model_Catalog_Product(); $product->setId(1); $event = $this->event($product); $binder->addBoltPatterns($event); $wheelProduct = new Elite_Vafwheel_Model_Catalog_Product($product); $this->assertEquals(2, count($wheelProduct->getBoltPatterns())); $this->setRequestParams(array('wheel_side_pattern' => "4x114.3")); $binder = new Elite_Vafwheel_Observer_ProductBoltBinder(); $product = new Elite_Vaf_Model_Catalog_Product(); $product->setId(1); $event = $this->event($product); $binder->addBoltPatterns($event); $wheelProduct = new Elite_Vafwheel_Model_Catalog_Product($product); $this->assertEquals(1, count($wheelProduct->getBoltPatterns()), 'removes previously added bolt patterns'); }
function testShouldImport() { $data = '"sku","lug_count","bolt_distance"' . "\n"; $data .= '"sku","4","144.3"'; $file = TEMP_PATH . '/product-wheel-sizes.csv'; file_put_contents($file, $data); $this->insertProduct('sku'); $importer = new Elite_Vafwheel_Model_Catalog_Product_ImportTests_TestSubClass($file); $importer->import(); $product = $this->getProductForSku('sku'); $product = new Elite_Vafwheel_Model_Catalog_Product($product); $boltPatterns = $product->getBoltPatterns(); $this->assertEquals(4, $boltPatterns[0]->getLugCount(), 'should set lug_count'); $this->assertEquals(144.3, $boltPatterns[0]->getDistance(), 'should set bolt distance'); }