/**
  * @param array $countResult
  * @param string $code
  * @param string $type
  * @param bool $visibleInAdvanced
  * @dataProvider attributesProvider
  */
 public function testGenerate($countResult, $code, $type, $visibleInAdvanced = true)
 {
     $collection = $this->getMockBuilder('Magento\\Catalog\\Model\\Resource\\Product\\Attribute\\Collection')->disableOriginalConstructor()->getMock();
     $collection->expects($this->any())->method('getIterator')->willReturn(new \ArrayIterator([$this->createAttributeMock($code, $type, $visibleInAdvanced)]));
     $collection->expects($this->any())->method('addFieldToFilter')->with(['is_searchable', 'is_visible_in_advanced_search', 'is_filterable'], [1, 1, [1, 2]])->will($this->returnSelf());
     $this->productAttributeCollectionFactory->expects($this->any())->method('create')->willReturn($collection);
     $result = $this->object->generate();
     $this->assertEquals($countResult[0], $this->countVal($result['quick_search_container']['queries']));
     $this->assertEquals($countResult[1], $this->countVal($result['advanced_search_container']['queries']));
     $this->assertEquals($countResult[2], $this->countVal($result['advanced_search_container']['filters']));
 }
 public function testGenerate()
 {
     $requests = $this->model->generate();
     //Quick Search
     $this->assertArrayHasKey('quick_search_container', $requests);
     $quickSearch = $requests['quick_search_container'];
     $message = 'Unexpected attribute';
     $this->assertArrayHasKey('test_quick_search_bucket', $quickSearch['aggregations'], $message);
     $this->assertArrayNotHasKey('test_catalog_view_bucket', $quickSearch['aggregations'], $message);
     //Catalog View
     $this->assertArrayHasKey('catalog_view_container', $requests);
     $catalogView = $requests['catalog_view_container'];
     $this->assertArrayNotHasKey('test_quick_search_bucket', $catalogView['aggregations'], $message);
     $this->assertArrayHasKey('test_catalog_view_bucket', $catalogView['aggregations'], $message);
 }
 public function generate()
 {
     if (!$this->helper->isActiveEngine()) {
         return parent::generate();
     }
     $requests['quick_search_container'] = $this->generateQuickSearchRequest();
     // TODO: advanced search
     return $requests;
 }
 /**
  * Merge reader's value with generated
  *
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  * @param \Magento\Framework\Config\ReaderInterface $subject
  * @param \Closure $proceed
  * @param string $scope
  * @return array
  */
 public function aroundRead(\Magento\Framework\Config\ReaderInterface $subject, \Closure $proceed, $scope = null)
 {
     $result = $proceed($scope);
     $result = array_merge_recursive($result, $this->requestGenerator->generate());
     return $result;
 }