array( 'first_name', 'email', 'total_amount', ), 'filters' => array( 'total_amount_op' => 'gte', 'total_amount_value' => 50, ), // FIXME: add filters ), 'fixtures/dataset.sql', 'fixtures/report.csv', ), ); } function setUp() { parent::setUp(); } function tearDown() {} /** * @dataProvider dataProvider */ public function testReportOutput($reportClass, $inputParams, $dataSet, $expectedOutputCsvFile) { $this->foreignKeyChecksOff(); $this->quickCleanup(self::$_tablesToTruncate); $config = CRM_Core_Config::singleton(); CRM_Utils_File::sourceSQLFile($config->dsn, dirname(__FILE__) . "/{$dataSet}"); $reportCsvFile = $this->getReportOutputAsCsv($reportClass, $inputParams); $reportCsvArray = $this->getArrayFromCsv($reportCsvFile); $expectedOutputCsvArray = $this->getArrayFromCsv(dirname(__FILE__) . "/{$expectedOutputCsvFile}"); $this->assertEquals(count($reportCsvArray[0]), count($expectedOutputCsvArray[0]), 'In line ' . __LINE__); foreach($reportCsvArray as $intKey => $strVal) { $this->assertNotNull($expectedOutputCsvArray[$intKey], 'In line ' . __LINE__); $this->assertEquals($expectedOutputCsvArray[$intKey], $strVal); } } }