/** * Constructor for criteria. Takes a collection of fields and a search string. * * @param Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection $fields * @param string $searchString * @param array $searchParameter */ public function __construct(Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection $fields, $searchString, array $searchParameter = array()) { Tx_PtExtbase_Assertions_Assert::isPositiveInteger($fields->count(), array('message' => 'No field given to search in! 1313532571')); Tx_PtExtbase_Assertions_Assert::isNotEmptyString($searchString, array('message' => 'SearchString must not be empty! 1313532596')); $this->fields = $fields; $this->searchString = $searchString; $this->searchParameter = $searchParameter; }
/** * @test */ public function getAliasedSelectPartByFieldConfigCollection() { $fieldConfig1 = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'test1', array('field' => 'field', 'table' => 'table')); $fieldConfig2 = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'test2', array('field' => 'field', 'table' => 'table', 'special' => 'special')); $fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $fieldConfigCollection->addFieldConfig($fieldConfig1); $fieldConfigCollection->addFieldConfig($fieldConfig2); $return = Tx_PtExtlist_Utility_DbUtils::getSelectPartByFieldConfigCollection($fieldConfigCollection); $this->assertEquals('table.field, (special)', $return); }
/** * Builds a collection of field config objects for a given settings array * * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder * @param array $fieldSettingsArray * @return Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection */ protected static function buildFieldConfigCollection(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $fieldSettingsArray = null) { $fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); foreach ($fieldSettingsArray as $fieldIdentifier => $fieldSettings) { $fieldConfig = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($configurationBuilder, $fieldIdentifier, $fieldSettings); //$fieldConfigCollection->addItem($fieldConfig, $fieldConfig->getIdentifier()); $fieldConfigCollection->addFieldConfig($fieldConfig); } return $fieldConfigCollection; }
public function setup() { $this->initDefaultConfigurationBuilderMock(); $fieldConfig1 = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'test1', array('field' => 'field', 'table' => 'table')); $fieldConfig2 = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'test2', array('field' => 'field', 'table' => 'table', 'special' => 'special')); $this->fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $this->fieldConfigCollection->addFieldConfig($fieldConfig1); $this->fieldConfigCollection->addFieldConfig($fieldConfig2); $this->fullTextCriteria = new Tx_PtExtlist_Domain_QueryObject_FullTextCriteria($this->fieldConfigCollection, 'searchString'); }
/** * get part of the collection with entrys selected by the array * * @param array $fieldIdentifierList * @return Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection; */ public function extractCollectionByIdentifierList(array $fieldIdentifierList) { if (current($fieldIdentifierList) == '*') { return $this; } $collection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); foreach ($fieldIdentifierList as $fieldIdentifier) { $collection->addFieldConfig($this->getFieldConfigByIdentifier($fieldIdentifier)); } return $collection; }
public function testGetInstanceByFieldConfigurationMulti() { $fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $fieldConfigCollection->addFieldConfig(new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'name', array('special' => 'test'))); $fieldConfigCollection->addFieldConfig(new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'company', array('special' => 'test'))); $sortingCollection = Tx_PtExtlist_Domain_Configuration_Columns_SortingConfigCollectionFactory::getInstanceByFieldConfiguration($fieldConfigCollection); $this->assertEquals($sortingCollection->count(), 2); // Test Object name $sortingConfigNameObject = $sortingCollection->getItemById('name'); $this->assertTrue(is_a($sortingConfigNameObject, 'Tx_PtExtlist_Domain_Configuration_Columns_SortingConfig')); $this->assertEquals($sortingConfigNameObject->getField(), 'name'); $this->assertEquals($sortingConfigNameObject->getDirection(), Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_ASC); $this->assertEquals($sortingConfigNameObject->getForceDirection(), false, 'ForceDirection'); // Test Object company $sortingConfigNameObject = $sortingCollection->getItemById('company'); $this->assertTrue(is_a($sortingConfigNameObject, 'Tx_PtExtlist_Domain_Configuration_Columns_SortingConfig')); $this->assertEquals($sortingConfigNameObject->getField(), 'company'); $this->assertEquals($sortingConfigNameObject->getDirection(), Tx_PtExtlist_Domain_QueryObject_Query::SORTINGSTATE_ASC); $this->assertEquals($sortingConfigNameObject->getForceDirection(), false, 'ForceDirection'); }
public function testExtractCollectionByIdentifierListExtractAll() { $fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $fieldConfigCollection->addFieldConfig(new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'field1', $this->aggregateSettings['field1'])); $fieldConfigCollection->addFieldConfig(new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'field2', $this->aggregateSettings['field2'])); $fieldConfigCollection->addFieldConfig(new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'field3', $this->aggregateSettings['field3'])); $extractFieldConfigCollection = $fieldConfigCollection->extractCollectionByIdentifierList(array('*')); $this->assertEquals(count($extractFieldConfigCollection), 3); $this->assertTrue(is_a($extractFieldConfigCollection->getFieldConfigByIdentifier('field1'), 'Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig')); $this->assertTrue(is_a($extractFieldConfigCollection->getFieldConfigByIdentifier('field2'), 'Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig')); $this->assertTrue(is_a($extractFieldConfigCollection->getFieldConfigByIdentifier('field3'), 'Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig')); }
protected function createMapperConfiguration() { $mapperConfiguration = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $field1Configuration = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'field1', array('table' => '__self__', 'field' => 'title')); $field2Configuration = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'field2', array('table' => '__self__', 'field' => 'title')); $mapperConfiguration->addFieldConfig($field1Configuration); $mapperConfiguration->addFieldConfig($field2Configuration); return $mapperConfiguration; }
/** @test */ public function translateFullTextCriteriaInBooleanModeWrappedWithStars() { $fieldConfig1 = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'test1', array('field' => 'field', 'table' => 'table')); $fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $fieldConfigCollection->addFieldConfig($fieldConfig1); $searchParameter['booleanMode'] = true; $searchParameter['booleanModeWrapWithStars'] = true; $fullTextCriteria = new Tx_PtExtlist_Domain_QueryObject_FullTextCriteria($fieldConfigCollection, 'searchString', $searchParameter); $translatedCriteria = Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_FullTextCriteriaTranslator::translateCriteria($fullTextCriteria); $this->assertEquals("MATCH (table.field) AGAINST ('*searchString*' IN BOOLEAN MODE)", $translatedCriteria); }
/** @test */ public function buildSelectPartWithSpecialStringReturnsExpectedString() { $pagerCollectionMock = $this->getMock('Tx_PtExtlist_Domain_Model_Pager_PagerCollection', array('setItemCount'), array(), '', false, false); $dataBackend = new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend($this->configurationBuilder); $dataBackend->_injectPagerCollection($pagerCollectionMock); $dataBackend->_injectQueryInterpreter(new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter()); $fieldConfigurationCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $fieldConfigurationCollection->addItem($this->getFieldConfigMockForSpecialAndIdentifier('specialString', 'testFieldIdentifier')); $dataBackend->_injectFieldConfigurationCollection($fieldConfigurationCollection); $selectPartForFieldConfigurationCollection = $dataBackend->buildSelectPart(); $expectedSelectPart = '(specialString) AS testFieldIdentifier'; $this->assertTrue($selectPartForFieldConfigurationCollection == $expectedSelectPart, 'Select part for field configuration collection should be "' . $expectedSelectPart . '" but was ' . $selectPartForFieldConfigurationCollection); }
public function testColumnAndFieldDifferentGroupsDeniedCausedByOnlyOneGroup() { $fieldConfigCollection = new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfigCollection(); $fieldConfigCollection->addFieldConfig(new Tx_PtExtlist_Domain_Configuration_Data_Fields_FieldConfig($this->configurationBuilderMock, 'field1', array('special' => 'test', 'accessGroups' => 'foo, bar'))); $columnConfigMock = $this->getMock('Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfig', array('getFieldIdentifier', 'getAccessGroups'), array(), '', FALSE); $columnConfigMock->expects($this->once())->method('getFieldIdentifier')->will($this->returnValue($fieldConfigCollection)); $columnConfigMock->expects($this->never())->method('getAccessGroups'); $this->securityMock->_set('userGroups', 'foobar'); $access = $this->securityMock->isAccessableColumn($columnConfigMock, $this->configurationBuilderMock); $this->assertFalse($access); }