protected function builddataBackendMock() { $this->testListData = new Tx_PtExtlist_Domain_Model_List_ListData(); foreach ($this->testData as $data) { $row = new Tx_PtExtlist_Domain_Model_List_Row(); $row->createAndAddCell($data / 10, 'field1'); $row->createAndAddCell($data, 'field2'); $row->createAndAddCell($data * 10, 'field3'); $this->testListData->addRow($row); } $this->dataBackendMock = $this->getMock('Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend', array('getListData', 'getAggregatesByConfigCollection'), array(), '', false); $this->dataBackendMock->expects($this->any())->method('getListData')->will($this->returnValue($this->testListData)); $this->dataBackendMock->expects($this->any())->method('getAggregatesByConfigCollection')->will($this->returnValue(array('avgField2' => 5))); }
/** @test */ public function testGetMultiple() { $selectFilter = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_SelectFilter'); /* @var $selectFilter Tx_PtExtlist_Domain_Model_Filter_SelectFilter */ $selectFilter->_injectGpVarsAdapter(new Tx_PtExtbase_State_GpVars_GpVarsAdapter('pt_extlist')); $filterConfiguration = new Tx_PtExtlist_Domain_Configuration_Filters_FilterConfig($this->configurationBuilderMock, array('filterIdentifier' => 'test', 'filterClassName' => 'Tx_PtExtlist_Domain_Model_Filter_SelectFilter', 'partialPath' => 'Filter/SelectFilter', 'fieldIdentifier' => 'field1', 'filterField' => 'field2', 'displayFields' => 'field1', 'excludeFilters' => 'filterbox1.filter1', 'multiple' => 1), 'test'); $selectFilter->_injectFilterConfig($filterConfiguration); $sessionManagerMock = $this->getMock('Tx_PtExtbase_State_Session_SessionPersistenceManager', array(), array(), '', FALSE); $dataBackendMock = new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend($this->configurationBuilderMock); $dataBackendMock->_injectFieldConfigurationCollection($this->configurationBuilderMock->buildFieldsConfiguration()); $selectFilter->_injectDataBackend($dataBackendMock); $selectFilter->init(); $this->assertEquals(1, $selectFilter->getMultiple()); }
/** * Utility Methods * * @param array $filterSettings * @return Tx_PtExtlist_Domain_Model_Filter_AbstractTimeSpanFilter */ public function buildAccessibleAbstractTimeSpanFilter($filterSettings = NULL) { if (!$filterSettings) { $filterSettings = $this->defaultFilterSettings; } $gpVarsAdapgerMock = $this->getMock('Tx_PtExtbase_State_GpVars_GpVarsAdapter', array(), array(), '', FALSE); /* @var $gpVarsAdapter Tx_PtExtbase_State_GpVars_GpVarsAdapter */ $accessibleClassName = $this->buildAccessibleProxy('Tx_PtExtlist_Domain_Model_Filter_AbstractTimeSpanFilter'); $abstractTimeSpanFilter = $this->getMockForAbstractClass($accessibleClassName); /* @var $abstractTimeSpanFilter Tx_PtExtlist_Domain_Model_Filter_AbstractTimeSpanFilter */ $filterConfiguration = new Tx_PtExtlist_Domain_Configuration_Filters_FilterConfig($this->configurationBuilderMock, $filterSettings, 'test'); $dataBackendMock = new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend($this->configurationBuilderMock); $dataBackendMock->_injectFieldConfigurationCollection($this->configurationBuilderMock->buildFieldsConfiguration()); $abstractTimeSpanFilter->_injectFilterConfig($filterConfiguration); $abstractTimeSpanFilter->_injectDataBackend($dataBackendMock); $abstractTimeSpanFilter->_injectGpVarsAdapter($gpVarsAdapgerMock); $abstractTimeSpanFilter->_set('filterValueStart', date_create('2000-01-01')); $abstractTimeSpanFilter->_set('filterValueEnd', date_create()); $abstractTimeSpanFilter->init(); return $abstractTimeSpanFilter; }
/** @test */ public function getGroupDataReturnsExpectedData() { $dataBackend = new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend($this->configurationBuilder); $fields = array('field1', 'field2', 'field3'); $excludeFilters = array('filterbox1.filter1', 'filterbox1.filter2', 'filterbox2.filter1'); $additionalQuery = new Tx_PtExtlist_Domain_QueryObject_Query(); $additionalQuery->addCriteria(Tx_PtExtlist_Domain_QueryObject_Criteria::greaterThan('field1', 10)); $returnArray = array('test'); $sortingStateCollectionMock = $this->getMock('Tx_PtExtlist_Domain_Model_Sorting_SortingStateCollection', array('getSortingsQuery'), array(), '', false); $sortingStateCollectionMock->expects($this->any())->method('getSortingsQuery')->will($this->returnValue(new Tx_PtExtlist_Domain_QueryObject_Query())); $sorterMock = $this->getMock('Tx_PtExtlist_Domain_Model_Sorting_Sorter', array('getSortingStateCollection'), array(), '', false); $sorterMock->expects($this->any())->method('getSortingStateCollection')->will($this->returnValue($sortingStateCollectionMock)); $queryInterpreterMock = $this->getMock('Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlInterpreter_MySqlInterpreter', array('interpretQuery'), array(), '', false); $dataSourceMock = $this->getMock('Tx_PtExtlist_Domain_DataBackend_DataSource_MySqlDataSource', array('executeQuery', 'fetchAll'), array(), '', false); $dataSourceMock->expects($this->once())->method('executeQuery')->will($this->returnValue($dataSourceMock)); $dataSourceMock->expects($this->once())->method('fetchAll')->will($this->returnValue($returnArray)); $filterboxCollectionMock = $this->getMock('Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection', array('getExcludeFilters'), array(), '', false); $filterboxCollectionMock->expects($this->any())->method('excludeFilters')->will($this->returnValue(array())); $dataBackend->_injectBackendConfiguration($this->configurationBuilder->buildDataBackendConfiguration()); $dataBackend->_injectPagerCollection($this->objectManager->get('Tx_PtExtlist_Domain_Model_Pager_PagerCollectionFactory')->getInstance($this->configurationBuilder)); $dataBackend->_injectDataSource($dataSourceMock); $dataBackend->_injectQueryInterpreter($queryInterpreterMock); $dataBackend->_injectSorter($sorterMock); $dataBackend->_injectFilterboxCollection($filterboxCollectionMock); $dataBackend->init(); $groupData = $dataBackend->getGroupData($additionalQuery, $excludeFilters); $this->assertEquals($returnArray, $groupData); }
protected function buildAccessibleAbstractGroupDataFilter($filterSettings = NULL) { $this->defaultFilterSettings = $filterSettings; if (!$this->defaultFilterSettings) { $this->defaultFilterSettings = array('filterIdentifier' => 'test', 'filterClassName' => 'Tx_PtExtlist_Domain_Model_Filter_SelectFilter', 'partialPath' => 'Filter/SelectFilter', 'fieldIdentifier' => 'field1', 'displayFields' => 'field1,field2', 'filterField' => 'field3', 'invert' => '0'); } $accessibleClassName = $this->buildAccessibleProxy('Tx_PtExtlist_Domain_Model_Filter_AbstractOptionsFilter'); $abstractOptionsFilter = $this->getMockForAbstractClass($accessibleClassName); $filterConfiguration = new Tx_PtExtlist_Domain_Configuration_Filters_FilterConfig($this->configurationBuilderMock, $this->defaultFilterSettings, 'test'); $gpVarAdapterMock = $this->getMock('Tx_PtExtbase_State_GpVars_GpVarsAdapter', array(), array(), '', FALSE); /* @var $gpVarAdapterMock Tx_PtExtbase_State_GpVars_GpVarsAdapter */ $dataBackendMock = new Tx_PtExtlist_Domain_DataBackend_MySqlDataBackend_MySqlDataBackend($this->configurationBuilderMock); $dataBackendMock->_injectFieldConfigurationCollection($this->configurationBuilderMock->buildFieldsConfiguration()); /* @var $abstractOptionsFilter Tx_PtExtlist_Domain_Model_Filter_AbstractOptionsFilter */ $abstractOptionsFilter->_injectFilterConfig($filterConfiguration); $abstractOptionsFilter->_injectDataBackend($dataBackendMock); $abstractOptionsFilter->_injectGpVarsAdapter($gpVarAdapterMock); $abstractOptionsFilter->init(); return $abstractOptionsFilter; }