/**
  * @param int $offset
  * @param int $limit
  * @return array
  */
 protected function runQueryAndGetResolveResultsData($offset, $limit)
 {
     assert('is_int($offset) || $offset == null');
     assert('is_int($limit) || $limit == null');
     $selectQueryAdapter = $this->makeSelectQueryAdapter();
     $sql = $this->makeSqlQueryForFetchingData($selectQueryAdapter, $offset, $limit);
     $rows = $this->getRowsData($sql);
     $resultsData = array();
     $idByOffset = self::resolveIdByOffset($offset);
     foreach ($rows as $key => $row) {
         $reportResultsRowData = new ReportResultsRowData($this->resolveDisplayAttributes(), $idByOffset);
         foreach ($selectQueryAdapter->getIdTableAliasesAndModelClassNames() as $tableAlias => $modelClassName) {
             $idColumnName = $selectQueryAdapter->getIdColumNameByTableAlias($tableAlias);
             $id = (int) $row[$idColumnName];
             if ($id != null) {
                 $reportResultsRowData->addModelAndAlias($modelClassName::getById($id), $tableAlias);
             }
             unset($row[$idColumnName]);
         }
         foreach ($row as $columnName => $value) {
             $reportResultsRowData->addSelectedColumnNameAndValue($columnName, $value);
         }
         $resultsData[$key] = $reportResultsRowData;
         $idByOffset++;
     }
     return $resultsData;
 }
 /**
  * Test for viaSelect and viaModel together
  * @depends testExportSummationAttributes
  */
 public function testViaSelectAndViaModelTogether()
 {
     $reportModelTestItem = new ReportModelTestItem();
     $report = new Report();
     //viaSelect attribute
     $displayAttribute1 = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION);
     $displayAttribute1->attributeIndexOrDerivedType = 'integer__Minimum';
     $displayAttribute1->madeViaSelectInsteadOfViaModel = true;
     $this->assertTrue($displayAttribute1->columnAliasName == 'col0');
     //viaModel attribute
     $reportModelTestItem->boolean = true;
     $displayAttribute2 = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_ROWS_AND_COLUMNS);
     $displayAttribute2->setModelAliasUsingTableAliasName('model1');
     $displayAttribute2->attributeIndexOrDerivedType = 'boolean';
     $reportResultsRowData = new ReportResultsRowData(array($displayAttribute1, $displayAttribute2), 4);
     $reportResultsRowData->addSelectedColumnNameAndValue('col0', 9000);
     $reportResultsRowData->addModelAndAlias($reportModelTestItem, 'model1');
     $adapter = new ReportToExportAdapter($reportResultsRowData, $report);
     $compareHeaderData = array('Integer -(Min)', 'Boolean');
     $compareRowData = array(9000, true);
     $this->assertEquals($compareHeaderData, $adapter->getHeaderData());
     $this->assertEquals($compareRowData, $adapter->getData());
 }
 public function testGetAttributeLabel()
 {
     $reportModelTestItemX = new ReportModelTestItem();
     $reportModelTestItemX->string = 'someString';
     $displayAttributeX = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION);
     $displayAttributeX->setModelAliasUsingTableAliasName('abc');
     $displayAttributeX->attributeIndexOrDerivedType = 'string';
     $displayAttributeY = new DisplayAttributeForReportForm('ReportsTestModule', 'ReportModelTestItem', Report::TYPE_SUMMATION);
     $displayAttributeY->attributeIndexOrDerivedType = 'integer__Maximum';
     $reportResultsRowData = new ReportResultsRowData(array($displayAttributeX, $displayAttributeY), 4);
     $reportResultsRowData->addModelAndAlias($reportModelTestItemX, 'abc');
     $reportResultsRowData->addSelectedColumnNameAndValue('col1', 55);
     //Test a viaModel attribute
     $this->assertEquals('String', $reportResultsRowData->getAttributeLabel('attribute0'));
     //Test a viaSelect attriubte
     $this->assertEquals('Integer -(Max)', $reportResultsRowData->getAttributeLabel('col1'));
 }
 /**
  * @param ReportResultsRowData $reportResultsRowData
  * @param $totalCount
  */
 protected function addDefaultColumnNamesAndValuesToReportResultsRowData(ReportResultsRowData $reportResultsRowData, $totalCount)
 {
     for ($i = 0; $i < $totalCount; $i++) {
         $columnAliasName = DisplayAttributeForReportForm::COLUMN_ALIAS_PREFIX . $i;
         $value = 0;
         $reportResultsRowData->addSelectedColumnNameAndValue($columnAliasName, $value);
     }
 }