public function testConfigurationBuilderWithMysqlBackend() { $settings = $this->buildTypoScriptConfigForConfigBuilder('mysqlBackendTestList'); $configurationBuilder = new Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder($settings, 't3BackendTestList'); $dataBackendConfig = $configurationBuilder->buildDataBackendConfiguration(); $this->assertTrue(is_a($dataBackendConfig, 'Tx_PtExtlist_Domain_Configuration_DataBackend_DatabackendConfiguration')); }
/** * Returns an instance of a data mapper for a given data mapper class name. * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return mixed */ public function createDataMapper(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { $dataBackendConfiguration = $configurationBuilder->buildDataBackendConfiguration(); $dataMapperClassName = $dataBackendConfiguration->getDataMapperClass(); $dataMapper = $this->objectManager->get($dataMapperClassName, $configurationBuilder); /** @var Tx_PtExtlist_Domain_DataBackend_Mapper_AbstractMapper $dataMapper */ $mapperConfiguration = $configurationBuilder->buildFieldsConfiguration(); // Check whether mapper implements interface Tx_PtExtbase_Assertions_Assert::isTrue($dataMapper instanceof Tx_PtExtlist_Domain_DataBackend_Mapper_MapperInterface, array('message' => 'Data mapper must implement data mapper interface! 1280415471')); $dataMapper->_injectConfigurationBuilder($configurationBuilder); $dataMapper->_injectMapperConfiguration($mapperConfiguration); $dataMapper->init(); return $dataMapper; }
/** * Factory method for data source * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_PtExtlist_Domain_DataBackend_DataSource_DummyDataSource */ public static function createDataSource(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { return new Tx_PtExtlist_Domain_DataBackend_DataSource_DummyDataSource($configurationBuilder->buildDataBackendConfiguration()->getDataSourceSettings()); }
/** * Factory method for data source * * Only DataBackend knows, which data source to use and how to instantiate it. * So there cannot be a generic factory for data sources and data backend factory cannot instantiate it either! * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @return Tx_PtExtlist_Domain_DataBackend_DataSource_MySqlDataSource Data source object for this data backend */ public static function createDataSource(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { $dataSourceConfiguration = new Tx_PtExtlist_Domain_Configuration_DataBackend_DataSource_DatabaseDataSourceConfiguration($configurationBuilder->buildDataBackendConfiguration()->getDataSourceSettings()); $dataSource = Tx_PtExtlist_Domain_DataBackend_DataSource_MysqlDataSourceFactory::createInstance($configurationBuilder->buildDataBackendConfiguration()->getDataSourceClass(), $dataSourceConfiguration); return $dataSource; }
private function getQueryInterpreter(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder) { $backendConfiguration = $configurationBuilder->buildDataBackendConfiguration(); $queryInterpreterClassName = $backendConfiguration->getQueryInterpreterClass(); $queryInterpreter = new $queryInterpreterClassName(); return $queryInterpreter; }
/** @test */ public function buildFromPartCreatesExpectedFromPartWithGivenBaseFromClause() { $tsConfig = $this->tsConfig; $tsConfig['plugin']['tx_ptextlist']['settings']['listConfig']['list2'] = $this->tsConfig['plugin']['tx_ptextlist']['settings']['listConfig']['list1']; $tsConfig['plugin']['tx_ptextlist']['settings']['listConfig']['list2']['backendConfig']['baseFromClause'] = 'static_countries'; $tsConfig['plugin']['tx_ptextlist']['settings']['listIdentifier'] = 'list2'; $configurationBuilder = new Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder($tsConfig['plugin']['tx_ptextlist']['settings'], 'list2'); $pagerCollectionMock = $this->getMock('Tx_PtExtlist_Domain_Model_Pager_PagerCollection', array('setItemCount'), array(), '', false, false); $dataBackend = new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend($configurationBuilder); $dataBackend->_injectBackendConfiguration($configurationBuilder->buildDataBackendConfiguration()); $dataBackend->_injectPagerCollection($pagerCollectionMock); $dataBackend->init(); $fromPart = $dataBackend->buildFromPart(); $this->assertEquals($fromPart, $tsConfig['plugin']['tx_ptextlist']['settings']['listConfig']['list2']['backendConfig']['baseFromClause'], 'Test expected . ' . $tsConfig['plugin']['tx_ptextlist']['settings']['listConfig']['list2']['backendConfig']['baseFromClause'] . ' but recieved ' . $fromPart); }