/**
  * A method to test the getAdsByCampaignId() method.
  *
  * Requirements:
  * Test 1: Test with invalid input, and ensure nothing returned
  * Test 2: Test with nothing in the database, and ensure nothing returned
  * Test 3: Test with a single ad in the database, and ensure it is returned
  * Test 4: Test with multiple ads in the database, and ensure only the
  *         required ads are returned
  */
 function testGetAdsByCampaignId()
 {
     $conf = $GLOBALS['_MAX']['CONF'];
     $oDbh =& OA_DB::singleton();
     $oDal = new MAX_Dal_Entities();
     // Test 1
     $campaignId = 'foo';
     $aResult = $oDal->getAdsByCampaignId($campaignId);
     $this->assertNull($aResult);
     // Test 2
     $campaignId = 1;
     $aResult = $oDal->getAdsByCampaignId($campaignId);
     $this->assertNull($aResult);
     // Test 3
     $oNow = new Date();
     $aData = array('campaignid' => $campaignId, 'status' => OA_ENTITY_STATUS_RUNNING, 'weight' => 1, 'updated' => $oNow->format('%Y-%m-%d %H:%M:%S'), 'acls_updated' => $oNow->format('%Y-%m-%d %H:%M:%S'));
     $idBanner1 = $this->_insertBanner($aData);
     $aResult = $oDal->getAdsByCampaignId($campaignId);
     $aExpectedResult = array($idBanner1 => array('ad_id' => $idBanner1, 'status' => OA_ENTITY_STATUS_RUNNING, 'type' => 'sql', 'weight' => 1));
     $this->assertEqual($aResult[1]['ad_id'], $aExpectedResult[1]['ad_id']);
     // Test 4
     $aData = array('campaignid' => $campaignId, 'status' => OA_ENTITY_STATUS_PAUSED, 'weight' => 5, 'updated' => $oNow->format('%Y-%m-%d %H:%M:%S'), 'acls_updated' => $oNow->format('%Y-%m-%d %H:%M:%S'));
     $idBanner2 = $this->_insertBanner($aData);
     $aData = array('campaignid' => $placementId + 1, 'status' => OA_ENTITY_STATUS_RUNNING, 'weight' => 2, 'updated' => $oNow->format('%Y-%m-%d %H:%M:%S'), 'acls_updated' => $oNow->format('%Y-%m-%d %H:%M:%S'));
     $idBanner3 = $this->_insertBanner($aData);
     $aResult = $oDal->getAdsByCampaignId($campaignId);
     $aExpectedResult = array($idBanner1 => array('ad_id' => $idBanner1, 'status' => OA_ENTITY_STATUS_RUNNING, 'type' => 'sql', 'weight' => 1), $idBanner2 => array('ad_id' => $idBanner2, 'status' => OA_ENTITY_STATUS_PAUSED, 'type' => 'sql', 'weight' => 5));
     $this->assertEqual($aResult[1]['ad_id'], $aExpectedResult[1]['ad_id']);
     $this->assertEqual($aResult[2]['ad_id'], $aExpectedResult[2]['ad_id']);
     DataGenerator::cleanUp();
 }
Exemplo n.º 2
0
 /**
  * A method to set the placement's "aAds" array to contain the
  * (@link OA_Maintenance_Priority_Ad} objects for each ad in the placement,
  * from the data stored in the database.
  */
 function setAdverts()
 {
     $aAds = $this->oMaxDalEntities->getAdsByCampaignId($this->id);
     if (is_array($aAds) && count($aAds) > 0) {
         reset($aAds);
         while (list($adId, $aAdDetails) = each($aAds)) {
             $this->aAds[$adId] = new OA_Maintenance_Priority_Ad($aAdDetails);
         }
     }
 }