Esempio n. 1
0
 public function testSelectsByRange()
 {
     $rangeField = 'test_id';
     $tableName = 'test';
     $this->_adapter->expects($this->once())->method('fetchRow')->with($this->_adapter->select()->from($tableName, [new \Zend_Db_Expr('MIN(' . $this->_adapter->quoteIdentifier($rangeField) . ') AS min'), new \Zend_Db_Expr('MAX(' . $this->_adapter->quoteIdentifier($rangeField) . ') AS max')]))->will($this->returnValue(['min' => 1, 'max' => 200]));
     $this->_adapter->expects($this->any())->method('quote')->will($this->returnCallback(function ($values) {
         if (!is_array($values)) {
             $values = [$values];
         }
         foreach ($values as &$value) {
             $value = "'" . $value . "'";
         }
         return implode(',', $values);
     }));
     $expectedSelect = $this->_adapter->select()->from($tableName);
     $result = $this->_adapter->selectsByRange($rangeField, $expectedSelect, 50);
     $this->assertCount(200 / 50, $result);
     $prepareField = $this->_adapter->quoteIdentifier($tableName) . '.' . $this->_adapter->quoteIdentifier($rangeField);
     $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 1)->where($prepareField . ' < ?', 51), $result[0]);
     $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 51)->where($prepareField . ' < ?', 101), $result[1]);
     $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 101)->where($prepareField . ' < ?', 151), $result[2]);
     $this->assertEquals($this->_adapter->select()->from($tableName)->where($prepareField . ' >= ?', 151)->where($prepareField . ' < ?', 201), $result[3]);
 }
Esempio n. 2
0
 /**
  * Array of SKU to array of super attribute values for all products.
  *
  * @return $this
  */
 protected function _loadSkuSuperData()
 {
     if (!$this->_skuSuperData) {
         $mainTable = $this->_resource->getTableName('catalog_product_super_attribute');
         $priceTable = $this->_resource->getTableName('catalog_product_super_attribute_pricing');
         $select = $this->_connection->select()->from(['m' => $mainTable], ['product_id', 'attribute_id', 'product_super_attribute_id'])->joinLeft(['p' => $priceTable], $this->_connection->quoteIdentifier('p.product_super_attribute_id') . ' = ' . $this->_connection->quoteIdentifier('m.product_super_attribute_id'), ['value_index']);
         foreach ($this->_connection->fetchAll($select) as $row) {
             $attrId = $row['attribute_id'];
             $productId = $row['product_id'];
             if ($row['value_index']) {
                 $this->_skuSuperData[$productId][$attrId][$row['value_index']] = true;
             }
             $this->_productSuperAttrs["{$productId}_{$attrId}"] = $row['product_super_attribute_id'];
         }
     }
     return $this;
 }
Esempio n. 3
0
 /**
  * Retrieve table header comment
  *
  * @param string $tableName
  * @return string
  */
 public function getTableHeader($tableName)
 {
     $quotedTableName = $this->_write->quoteIdentifier($tableName);
     return "\n--\n" . "-- Table structure for table {$quotedTableName}\n" . "--\n\n";
 }