private function buildDataBackendForConfigurationBuilder(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $dataBackendConfiguration = $configurationBuilder->buildDataBackendConfiguration();
     /* @var $dataBackendClassName string */
     $dataBackendClassName = $dataBackendConfiguration->getDataBackendClass();
     $dataBackend = $this->objectManager->get($dataBackendClassName, $configurationBuilder);
     /* @var $dataBackend Tx_PtExtlist_Domain_DataBackend_AbstractDataBackend */
     // The reference has to be set here because otherwise every filter will create the databackend again -> recursion!
     $this->instancesContainer->set($dataBackend);
     // Check whether backend class implements backend interface
     Tx_PtExtbase_Assertions_Assert::isTrue($dataBackend instanceof Tx_PtExtlist_Domain_DataBackend_DataBackendInterface, array('message' => 'Data Backend class ' . $dataBackendClassName . ' does not implement Tx_PtExtlist_Domain_DataBackend_DataBackendInterface 1280400022'));
     $dataBackend->_injectBackendConfiguration($configurationBuilder->buildDataBackendConfiguration());
     $dataBackend->_injectFieldConfigurationCollection($configurationBuilder->buildFieldsConfiguration());
     $dataBackend->_injectDataMapper($this->getDataMapper($configurationBuilder));
     $dataBackend->_injectDataSource($this->getDataSource($dataBackendClassName, $configurationBuilder));
     $dataBackend->_injectPagerCollection($this->getPagerCollection($configurationBuilder));
     $dataBackend->_injectSorter($this->getSorter($configurationBuilder));
     $dataBackend->_injectFilterboxCollection($this->getfilterboxCollection($configurationBuilder));
     if ($this->getQueryInterpreter($configurationBuilder) != NULL) {
         $dataBackend->_injectQueryInterpreter($this->getQueryInterpreter($configurationBuilder));
     }
     $dataBackend->init();
 }
 /** @test */
 public function setOverwritesInstances()
 {
     $listIdentifier = 'testListIdentifier';
     $dataBackenMock = $this->getMock('Tx_PtExtlist_Domain_DataBackend_Typo3DataBackend_Typo3DataBackend', array('getListIdentifier'), array(), '', FALSE);
     $dataBackenMock->expects($this->any())->method('getListIdentifier')->will($this->returnValue($listIdentifier));
     $instancesContainer = new Tx_PtExtlist_Domain_DataBackend_DataBackendInstancesContainer();
     $instancesContainer->add($dataBackenMock);
     $this->assertEquals($dataBackenMock, $instancesContainer->get($listIdentifier));
     $dataBackenMock2 = $this->getMock('Tx_PtExtlist_Domain_DataBackend_Typo3DataBackend_Typo3DataBackend', array('getListIdentifier'), array(), '', FALSE);
     $dataBackenMock2->expects($this->any())->method('getListIdentifier')->will($this->returnValue($listIdentifier));
     $instancesContainer->set($dataBackenMock2);
     $this->assertEquals($dataBackenMock2, $instancesContainer->get($listIdentifier));
 }