/** * 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(); }
/** * 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); } } }