Beispiel #1
0
 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);
 }