/**
  * Pruning can be performed where zone_id = 0 (i.e. for direct selection) and where the entry is older than MAX_PREVIOUS_AD_DELIVERY_INFO_LIMIT minutes ago.
  *
  */
 function testPruneDataSummaryAdZoneAssocOldData()
 {
     $oDate = new Date();
     $oServiceLocator =& OA_ServiceLocator::instance();
     $oServiceLocator->register('now', $oDate);
     $oDal = new OA_Maintenance_Pruning();
     $doDSAZA = OA_Dal::factoryDO('data_summary_ad_zone_assoc');
     // Test 1: table is empty : nothing to delete
     $this->assertEqual($this->_countRowsInDSAZA(), 0);
     $this->assertFalse($oDal->_pruneDataSummaryAdZoneAssocOldData());
     // generate 4 records
     $aIds = DataGenerator::generate($doDSAZA, 4);
     $this->assertEqual($this->_countRowsInDSAZA(), 4);
     // Test 2: values are current, zone_id = 1 : nothing to delete
     $this->assertFalse($oDal->_pruneDataSummaryAdZoneAssocOldData());
     $this->assertEqual($this->_countRowsInDSAZA(), 4);
     // Test 3: values are old, zone_id = 1 : should not delete anything
     foreach ($aIds as $k => $id) {
         $oDate->subtractSeconds(MAX_PREVIOUS_AD_DELIVERY_INFO_LIMIT + 100);
         $doDSAZA->data_summary_ad_zone_assoc_id = $id;
         $doDSAZA->find(true);
         $doDSAZA->created = $oDate->getDate();
         $doDSAZA->zone_id = 1;
         $doDSAZA->update();
     }
     $this->assertFalse($oDal->_pruneDataSummaryAdZoneAssocOldData());
     $this->assertEqual($this->_countRowsInDSAZA(), 4);
     // Test 4: values are old, zone_id = 0 : should delete 4 records
     foreach ($aIds as $k => $id) {
         $doDSAZA->data_summary_ad_zone_assoc_id = $id;
         $doDSAZA->find(true);
         $doDSAZA->zone_id = 0;
         $doDSAZA->update();
     }
     $this->assertTrue($oDal->_pruneDataSummaryAdZoneAssocOldData());
     $this->assertEqual($this->_countRowsInDSAZA(), 0);
 }