Ejemplo n.º 1
0
 /**
  * Test agency publisher statistics.
  *
  */
 function testGetAgencyPublisherStatistics()
 {
     $doAgency = OA_Dal::factoryDO('agency');
     $doPublisher1 = OA_Dal::factoryDO('affiliates');
     $doZone1 = OA_Dal::factoryDO('zones');
     $this->generateZoneWithParents($doAgency, $doPublisher1, $doZone1);
     $doPublisher2 = OA_Dal::factoryDO('affiliates');
     $doZone2 = OA_Dal::factoryDO('zones');
     $this->generateZoneAndPublisherForAgency($doAgency, $doPublisher2, $doZone2);
     $doZone3 = OA_Dal::factoryDO('zones');
     $this->generateZoneForPublisher($doPublisher2, $doZone3);
     $doDataSummaryAdHourly = OA_Dal::factoryDO('data_summary_ad_hourly');
     $doDataSummaryAdHourly->impressions = 100;
     $doDataSummaryAdHourly->requests = 0;
     $doDataSummaryAdHourly->total_revenue = 0;
     $doDataSummaryAdHourly->clicks = 7;
     $doDataSummaryAdHourly->date_time = '2006-02-02';
     $this->generateDataSummaryAdHourlyForZone($doDataSummaryAdHourly, $doZone1);
     $doDataSummaryAdHourly = OA_Dal::factoryDO('data_summary_ad_hourly');
     $doDataSummaryAdHourly->impressions = 12;
     $doDataSummaryAdHourly->requests = 411;
     $doDataSummaryAdHourly->total_revenue = 116;
     $doDataSummaryAdHourly->clicks = 723;
     $doDataSummaryAdHourly->date_time = '2007-02-01';
     $this->generateDataSummaryAdHourlyForZone($doDataSummaryAdHourly, $doZone2);
     $doDataSummaryAdHourly = OA_Dal::factoryDO('data_summary_ad_hourly');
     $doDataSummaryAdHourly->impressions = 12;
     $doDataSummaryAdHourly->requests = 411;
     $doDataSummaryAdHourly->total_revenue = 116;
     $doDataSummaryAdHourly->clicks = 723;
     $doDataSummaryAdHourly->date_time = '2007-04-01';
     $this->generateDataSummaryAdHourlyForZone($doDataSummaryAdHourly, $doZone3);
     // 1. Get data existing range
     $rsAgencyStatistics = $this->_dalAgencyStatistics->getAgencyPublisherStatistics($doAgency->agencyid, new Date('2005-07-07'), new Date('2007-09-12'));
     $rsAgencyStatistics->find();
     $this->assertTrue($rsAgencyStatistics->getRowCount() == 2, '2 records should be returned');
     $rsAgencyStatistics->fetch();
     $aRow1 = $rsAgencyStatistics->toArray();
     $rsAgencyStatistics->fetch();
     $aRow2 = $rsAgencyStatistics->toArray();
     $this->ensureRowSequence($aRow1, $aRow2, 'publisherid', $doPublisher1->affiliateid);
     // 2. Check return fields names
     $this->assertFieldExists($aRow2, 'publisherid');
     $this->assertFieldExists($aRow2, 'publishername');
     $this->assertFieldExists($aRow2, 'requests');
     $this->assertFieldExists($aRow2, 'impressions');
     $this->assertFieldExists($aRow2, 'clicks');
     $this->assertFieldExists($aRow2, 'revenue');
     // 3. Check return fields value
     $this->assertFieldEqual($aRow1, 'impressions', 100);
     $this->assertFieldEqual($aRow1, 'requests', 0);
     $this->assertFieldEqual($aRow1, 'revenue', 0);
     $this->assertFieldEqual($aRow1, 'clicks', 7);
     $this->assertFieldEqual($aRow2, 'impressions', 24);
     $this->assertFieldEqual($aRow2, 'requests', 822);
     $this->assertFieldEqual($aRow2, 'revenue', 232);
     $this->assertFieldEqual($aRow2, 'clicks', 1446);
     // 4. Get data in not existing range
     $rsAgencyStatistics = $this->_dalAgencyStatistics->getAgencyPublisherStatistics($doAgency->agencyid, new Date('2001-12-01'), new Date('2004-09-19'));
     $rsAgencyStatistics->find();
     $this->assertTrue($rsAgencyStatistics->getRowCount() == 0, 'Recordset should be empty');
 }