/**
  * Factory method creates instance of breadcrumbs collection for a given filterbox collection
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection $filterboxCollection
  * @return Tx_PtExtlist_Domain_Model_BreadCrumbs_BreadCrumbCollection
  */
 public function getInstanceByFilterboxCollection(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection $filterboxCollection)
 {
     if (!array_key_exists($filterboxCollection->getListIdentifier(), $this->instances) || $this->instances[$filterboxCollection->getListIdentifier()] == null) {
         $breadCrumbCollection = new Tx_PtExtlist_Domain_Model_BreadCrumbs_BreadCrumbCollection();
         $breadCrumbCollection->injectConfigurationBuilder($configurationBuilder);
         $getPostVarsAdapterFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_StateAdapter_GetPostVarAdapterFactory');
         /* @var $getPostVarsAdapterFactory Tx_PtExtlist_Domain_StateAdapter_GetPostVarAdapterFactory */
         $gpVarsAdapter = $getPostVarsAdapterFactory->getInstance();
         $gpVarsAdapter->injectParametersInObject($breadCrumbCollection);
         foreach ($filterboxCollection as $filterbox) {
             /* @var $filterbox Tx_PtExtlist_Domain_Model_Filter_Filterbox */
             foreach ($filterbox as $filter) {
                 /* @var $filter Tx_PtExtlist_Domain_Model_Filter_FilterInterface */
                 if ($filter->isActive()) {
                     $breadcrumb = $filter->getFilterBreadCrumb();
                     if ($breadcrumb !== null) {
                         // TODO at the moment, proxy filters generate a null breadcrumb. Fix this!
                         $breadCrumbCollection->addBreadCrumb($breadcrumb);
                     }
                 }
             }
         }
         $this->instances[$filterboxCollection->getListIdentifier()] = $breadCrumbCollection;
     }
     return $this->instances[$filterboxCollection->getListIdentifier()];
 }
 /** @test */
 public function addBreadCrumbAddsBreadCrumbToCollection()
 {
     $filterMock = $this->getMock('Tx_PtExtlist_Tests_Domain_Model_Filter_Stubs_FilterStub', array(), array(), '', false);
     $breadCrumbMock = $this->getAccessibleMock('Tx_PtExtlist_Domain_Model_BreadCrumbs_BreadCrumb', array('dummy'), array($filterMock), '', false);
     $breadCrumbMock->_set('filter', $filterMock);
     $breadCrumbCollection = new Tx_PtExtlist_Domain_Model_BreadCrumbs_BreadCrumbCollection();
     $breadCrumbCollection->addBreadCrumb($breadCrumbMock);
 }