Ejemplo n.º 1
0
 /**
  * Test banner zone statistics.
  *
  */
 function testGetBannerZoneStatistics()
 {
     $doAgency = OA_Dal::factoryDO('agency');
     $doAdvertiser = OA_Dal::factoryDO('clients');
     $doCampaign = OA_Dal::factoryDO('campaigns');
     $doBanner = OA_Dal::factoryDO('banners');
     $this->generateBannerWithParents($doAgency, $doAdvertiser, $doCampaign, $doBanner);
     $doAgency = OA_Dal::factoryDO('agency');
     $doPublisher = OA_Dal::factoryDO('affiliates');
     $doPublisher->name = 'test publisher name';
     $doZone1 = OA_Dal::factoryDO('zones');
     $doZone1->zonename = 'test zone name';
     $this->generateZoneWithParents($doAgency, $doPublisher, $doZone1);
     $doZone2 = OA_Dal::factoryDO('zones');
     $this->generateZoneForPublisher($doPublisher, $doZone2);
     $doDataSummaryAdHourly = OA_Dal::factoryDO('data_summary_ad_hourly');
     $doDataSummaryAdHourly->impressions = 1;
     $doDataSummaryAdHourly->requests = 2;
     $doDataSummaryAdHourly->total_revenue = 3;
     $doDataSummaryAdHourly->clicks = 4;
     $doDataSummaryAdHourly->conversions = 5;
     $doDataSummaryAdHourly->date_time = '1984-03-08';
     $this->generateDataSummaryAdHourlyForBannerAndZone($doDataSummaryAdHourly, $doBanner, $doZone1);
     $doDataSummaryAdHourly = OA_Dal::factoryDO('data_summary_ad_hourly');
     $doDataSummaryAdHourly->impressions = 11;
     $doDataSummaryAdHourly->requests = 12;
     $doDataSummaryAdHourly->total_revenue = 13;
     $doDataSummaryAdHourly->clicks = 14;
     $doDataSummaryAdHourly->conversions = 15;
     $doDataSummaryAdHourly->date_time = '1984-04-08';
     $this->generateDataSummaryAdHourlyForBannerAndZone($doDataSummaryAdHourly, $doBanner, $doZone1);
     $doDataSummaryAdHourly = OA_Dal::factoryDO('data_summary_ad_hourly');
     $doDataSummaryAdHourly->impressions = 10;
     $doDataSummaryAdHourly->requests = 20;
     $doDataSummaryAdHourly->total_revenue = 30;
     $doDataSummaryAdHourly->clicks = 40;
     $doDataSummaryAdHourly->conversions = 50;
     $doDataSummaryAdHourly->date_time = '2007-09-13';
     $this->generateDataSummaryAdHourlyForBannerAndZone($doDataSummaryAdHourly, $doBanner, $doZone2);
     // 1. Get data existing range
     $rsBannerStatistics = $this->_dalBannerStatistics->getBannerZoneStatistics($doBanner->bannerid, new Date('1984-01-01'), new Date('2007-09-13'));
     $rsBannerStatistics->find();
     $this->assertTrue($rsBannerStatistics->getRowCount() == 2, '2 records should be returned');
     $rsBannerStatistics->fetch();
     $aRow1 = $rsBannerStatistics->toArray();
     $rsBannerStatistics->fetch();
     $aRow2 = $rsBannerStatistics->toArray();
     $this->ensureRowSequence($aRow1, $aRow2, 'zoneid', $doZone1->zoneid);
     // 2. Check return fields names
     $this->assertFieldExists($aRow1, 'publisherid');
     $this->assertFieldExists($aRow1, 'publishername');
     $this->assertFieldExists($aRow1, 'zoneid');
     $this->assertFieldExists($aRow1, 'zonename');
     $this->assertFieldExists($aRow1, 'requests');
     $this->assertFieldExists($aRow1, 'impressions');
     $this->assertFieldExists($aRow1, 'clicks');
     $this->assertFieldExists($aRow1, 'revenue');
     $this->assertFieldExists($aRow1, 'conversions');
     // 3. Check return fields value
     $this->assertFieldEqual($aRow1, 'publishername', $doPublisher->name);
     $this->assertFieldEqual($aRow1, 'zonename', $doZone1->zonename);
     $this->assertFieldEqual($aRow1, 'impressions', 12);
     $this->assertFieldEqual($aRow1, 'requests', 14);
     $this->assertFieldEqual($aRow1, 'revenue', 16);
     $this->assertFieldEqual($aRow1, 'clicks', 18);
     $this->assertFieldEqual($aRow1, 'conversions', 20);
     $this->assertFieldEqual($aRow2, 'impressions', 10);
     $this->assertFieldEqual($aRow2, 'requests', 20);
     $this->assertFieldEqual($aRow2, 'revenue', 30);
     $this->assertFieldEqual($aRow2, 'clicks', 40);
     $this->assertFieldEqual($aRow2, 'conversions', 50);
     // 4. Get data in not existing range
     $rsBannerStatistics = $this->_dalBannerStatistics->getBannerZoneStatistics($doBanner->bannerid, new Date('2007-09-21'), new Date('2007-09-21'));
     $rsBannerStatistics->find();
     $this->assertTrue($rsBannerStatistics->getRowCount() == 0, 'Recordset should be empty');
     // 5. Get 1 row
     $rsBannerStatistics = $this->_dalBannerStatistics->getBannerZoneStatistics($doBanner->bannerid, new Date('1984-01-01'), new Date('1984-03-09'));
     $rsBannerStatistics->find();
     $this->assertTrue($rsBannerStatistics->getRowCount() == 1, 'Some records should be returned');
 }