/**
  * A method to test the setAdverts() method.
  *
  * Requirements:
  * Test 1: Test with error getting the ads from the database, and
  *         ensure the aAds array remains empty.
  * Test 2: Test with no children ads in the database, and ensure
  *         the aAds array remains empty.
  * Test 3: Test with children ads in the database, and ensure that
  *         the correct entities are created for these ads in the
  *         aAds array.
  */
 function testSetAdverts()
 {
     $oError = new PEAR_Error();
     $aAds = array(1 => array('ad_id' => 1, 'type' => 'sql', 'weight' => 2, 'status' => OA_ENTITY_STATUS_RUNNING), 2 => array('ad_id' => 2, 'type' => 'gif', 'weight' => 1, 'status' => OA_ENTITY_STATUS_RUNNING), 3 => array('ad_id' => 3, 'type' => 'sql', 'weight' => 2, 'status' => OA_ENTITY_STATUS_RUNNING), 5 => array('ad_id' => 5, 'type' => 'gif', 'weight' => 3, 'status' => OA_ENTITY_STATUS_AWAITING));
     $oServiceLocator =& OA_ServiceLocator::instance();
     $oMaxDalEntities =& $oServiceLocator->get('MAX_Dal_Entities');
     $oMaxDalEntities->setReturnValueAt(0, 'getAdsByCampaignId', $oError);
     $oMaxDalEntities->setReturnValueAt(1, 'getAdsByCampaignId', null);
     $oMaxDalEntities->setReturnValueAt(2, 'getAdsByCampaignId', $aAds);
     $oMaxDalEntities->expectArgumentsAt(0, 'getAdsByCampaignId', array(1));
     $oMaxDalEntities->expectArgumentsAt(1, 'getAdsByCampaignId', array(1));
     $oMaxDalEntities->expectArgumentsAt(2, 'getAdsByCampaignId', array(1));
     $oMaxDalEntities->expectCallCount('getAdsByCampaignId', 3);
     // Test 1
     $aParams = array('campaignid' => 1);
     $oCampaign = new OX_Maintenance_Priority_Campaign($aParams);
     $this->assertTrue(is_array($oCampaign->aAds));
     $this->assertEqual(count($oCampaign->aAds), 0);
     $oCampaign->setAdverts();
     $this->assertTrue(is_array($oCampaign->aAds));
     $this->assertEqual(count($oCampaign->aAds), 0);
     // Test 2
     $aParams = array('campaignid' => 1);
     $oCampaign = new OX_Maintenance_Priority_Campaign($aParams);
     $this->assertTrue(is_array($oCampaign->aAds));
     $this->assertEqual(count($oCampaign->aAds), 0);
     $oCampaign->setAdverts();
     $this->assertTrue(is_array($oCampaign->aAds));
     $this->assertEqual(count($oCampaign->aAds), 0);
     // Test 3
     $this->assertTrue(is_array($oCampaign->aAds));
     $this->assertEqual(count($oCampaign->aAds), 0);
     $oCampaign->setAdverts();
     $this->assertTrue(is_array($oCampaign->aAds));
     $this->assertEqual(count($oCampaign->aAds), 4);
     $this->assertTrue(is_a($oCampaign->aAds[1], 'OA_Maintenance_Priority_Ad'));
     $this->assertTrue(is_a($oCampaign->aAds[2], 'OA_Maintenance_Priority_Ad'));
     $this->assertTrue(is_a($oCampaign->aAds[3], 'OA_Maintenance_Priority_Ad'));
     $this->assertTrue(is_a($oCampaign->aAds[5], 'OA_Maintenance_Priority_Ad'));
     $oMaxDalEntities->tally();
 }