Esempio n. 1
0
 /**
  * @dataProvider pricesSegmentationDataProvider
  */
 public function testPricesSegmentation($categoryId, $intervalsNumber, $intervalItems)
 {
     $this->_layer->setCurrentCategory($categoryId);
     $collection = $this->_layer->getProductCollection();
     $memoryUsedBefore = memory_get_usage();
     $this->_model->setPricesModel($this->_filter)->setStatistics($collection->getMinPrice(), $collection->getMaxPrice(), $collection->getPriceStandardDeviation(), $collection->getSize());
     if (!is_null($intervalsNumber)) {
         $this->assertEquals($intervalsNumber, $this->_model->getIntervalsNumber());
     }
     $items = $this->_model->calculateSeparators();
     $this->assertEquals(array_keys($intervalItems), array_keys($items));
     for ($i = 0; $i < count($intervalItems); ++$i) {
         $this->assertInternalType('array', $items[$i]);
         $this->assertEquals($intervalItems[$i]['from'], $items[$i]['from']);
         $this->assertEquals($intervalItems[$i]['to'], $items[$i]['to']);
         $this->assertEquals($intervalItems[$i]['count'], $items[$i]['count']);
     }
     // Algorythm should use less than 10M
     $this->assertLessThan(10 * 1024 * 1024, memory_get_usage() - $memoryUsedBefore);
 }
 /**
  * Prepare price filter model
  *
  * @param Magento_Test_Request|null $request
  * @return void
  */
 protected function _prepareFilter($request = null)
 {
     $layer = new Mage_Catalog_Model_Layer();
     $layer->setCurrentCategory(4);
     $layer->setState(new Mage_Catalog_Model_Layer_State());
     $filter = new Mage_Catalog_Model_Layer_Filter_Price();
     $filter->setLayer($layer)->setAttributeModel(new Varien_Object(array('attribute_code' => 'price')));
     if (!is_null($request)) {
         $filter->apply($request, new Mage_Core_Block_Text());
         $interval = $filter->getInterval();
         if ($interval) {
             $this->_model->setLimits($interval[0], $interval[1]);
         }
     }
     $collection = $layer->getProductCollection();
     $this->_model->setPricesModel($filter)->setStatistics($collection->getMinPrice(), $collection->getMaxPrice(), $collection->getPriceStandardDeviation(), $collection->getSize());
 }
Esempio n. 3
0
 public function testGetSetCurrentCategory()
 {
     $existingCategory = new Mage_Catalog_Model_Category();
     $existingCategory->load(5);
     /* Category object */
     $model = new Mage_Catalog_Model_Layer();
     $model->setCurrentCategory($existingCategory);
     $this->assertSame($existingCategory, $model->getCurrentCategory());
     /* Category id */
     $model = new Mage_Catalog_Model_Layer();
     $model->setCurrentCategory(3);
     $actualCategory = $model->getCurrentCategory();
     $this->assertInstanceOf('Mage_Catalog_Model_Category', $actualCategory);
     $this->assertEquals(3, $actualCategory->getId());
     $this->assertSame($actualCategory, $model->getCurrentCategory());
     /* Category in registry */
     Mage::register('current_category', $existingCategory);
     try {
         $model = new Mage_Catalog_Model_Layer();
         $this->assertSame($existingCategory, $model->getCurrentCategory());
         Mage::unregister('current_category');
         $this->assertSame($existingCategory, $model->getCurrentCategory());
     } catch (Exception $e) {
         Mage::unregister('current_category');
         throw $e;
     }
     try {
         $model = new Mage_Catalog_Model_Layer();
         $model->setCurrentCategory(new Varien_Object());
         $this->fail('Assign category of invalid class.');
     } catch (Mage_Core_Exception $e) {
     }
     try {
         $model = new Mage_Catalog_Model_Layer();
         $model->setCurrentCategory(new Mage_Catalog_Model_Category());
         $this->fail('Assign category with invalid id.');
     } catch (Mage_Core_Exception $e) {
     }
 }
Esempio n. 4
0
 protected function setUp()
 {
     $this->_model = Mage::getModel('Mage_Catalog_Model_Layer');
     $this->_model->setCurrentCategory(4);
 }