public function getCategoryQueryTerm(Category $category, $store = null)
 {
     $queryType = $this->helper->getCategoryQueryType($store);
     if ($queryType == CategoryQueryType::NAME) {
         return $category->getName();
     }
     $parents = $category->getParentCategories();
     $parentIds = array_intersect($category->getParentIds(), array_keys($parents));
     switch ($queryType) {
         case CategoryQueryType::FULL_PATH:
             break;
         case CategoryQueryType::NAME_AND_PARENT_NAME:
             $parentId = $category->getParentId();
             $parentIds = in_array($parentId, $parentIds) ? [$parentId] : [];
             break;
         case CategoryQueryType::NAME_AND_ROOT_NAME:
             $parentIds = array_slice($parentIds, 0, 1);
             break;
     }
     $names = array_map(function ($id) use($parents) {
         return $parents[$id]->getName();
     }, $parentIds);
     $names[] = $category->getName();
     return implode(' ', $names);
 }
 public function testGetParentCategoriesEmpty()
 {
     $this->_model->load(1);
     $parents = $this->_model->getParentCategories();
     $this->assertEquals(0, count($parents));
 }
 /**
  * {@inheritdoc}
  */
 public function getParentCategories()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getParentCategories');
     if (!$pluginInfo) {
         return parent::getParentCategories();
     } else {
         return $this->___callPlugins('getParentCategories', func_get_args(), $pluginInfo);
     }
 }