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)); }