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