public function testTransfer() { $cycleID = DWHInspector::getCycle('LOADED'); $ds_lines = array(); $files = DWHInspector::getFiles($cycleID); $dsTablesToFactTables = $this->getDSTablesToFactTables(); foreach ($files as $fileID) { foreach (array_keys($dsTablesToFactTables) as $dsTable) { $ds_lines[$fileID][$dsTable] = DWHInspector::countRows('kalturadw_ds.' . $dsTable, $fileID); } } DWHInspector::markAllAsAggregated(); $transferParams = $this->getTransferParams(); KettleRunner::execute($this->getTransferJob(), $transferParams); $this->assertEquals($cycleID, DWHInspector::getCycle('DONE')); $this->isCycleDirExists($cycleID, false); $files = DWHInspector::getFiles($cycleID); foreach ($files as $fileID) { foreach ($dsTablesToFactTables as $dsTable => $factTable) { // compare rows in ds_events and dwh_fact_events $this->assertEquals($ds_lines[$fileID][$dsTable], DWHInspector::countRows('kalturadw.' . $factTable, $fileID)); // make sure ds_events was emptied $this->assertEquals(0, DWHInspector::countRows('kalturadw_ds.' . $dsTable, $fileID)); } } foreach (DWHInspector::getAggrDatesAndHours($cycleID) as $table => $arr) { $minDateID = DWHInspector::getResetAggregationsMinDateID($cycleID, $table); $postTransferAggregationTypes = DWHInspector::getPostTransferAggregationTypes($transferParams[self::TRANSFER_PARAM_PROCESS_ID], $table); foreach ($arr as $dateID => $hours) { foreach ($hours as $hourID) { foreach ($postTransferAggregationTypes as $aggrType) { $filter = 'aggr_name = \'' . $aggrType . '\' and date_id = ' . $dateID . ' and hour_id = ' . $hourID . ' and ifnull(start_time,date(19700101)) < data_insert_time'; $rowExists = DWHInspector::rowExists('kalturadw.aggr_managment', $filter); $this->assertEquals($dateID >= $minDateID, $rowExists, "Row Date: {$dateID} {$hourID} {$aggrType} . Min Date: {$minDateID}"); } } } } }