/** * Method to test the getAllDeliveryLimitationChangedCreatives method. * * Requirements: * Test 0: Test with bad input data, and ensure the method survives. * Test 1: Test with no data, and ensure no data are returned. * Test 2: Test with an active ad that has not had any delivery limitation changes, * and ensure that no data are returned: DEPRECATED TEST, PostgreSQL DOES * NOT PERMIT THE acls_update FIELD TO HAVE A NULL ENTRY. * Test 3: Test with an active ad that has had a delivery limitation change in the * last OI, before the last Priority Compensation run, and ensure that no * data are returned. * Test 4: Test with an active ad that has had a delivery limitation change in the * last OI, after the last Priority Compensation run, and ensure that the * correct data are returned. * Test 5: Test with an active ad that has had a delivery limitation change in the * current OI, and ensure that the correct data are returned. * Test 6: Repeat test 3, but with an inactive ad. * Test 7: Repeat test 4, but with an inactive ad. * Test 8: Repeat test 5, but with an inactive ad. * Test 9: Test with a mixture of ads, and ensure the correct data are returned. */ function testGetAllDeliveryLimitationChangedCreatives() { TestEnv::restoreEnv('dropTmpTables'); $conf = $GLOBALS['_MAX']['CONF']; $oDbh =& OA_DB::singleton(); $oMaxDalMaintenance = new OA_Dal_Maintenance_Priority(); $oDateNow = new Date('2006-10-04 12:07:01'); $oDateLastPC = new Date('2006-10-04 11:14:53'); $aLastRun = array('start_run' => $oDateLastPC, 'now' => $oDateNow); // Test 0 $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives(array()); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 0); // Test 1 $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 0); // Test 3 $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = 1; $doCampaigns->status = OA_ENTITY_STATUS_RUNNING; $idCampaign = DataGenerator::generateOne($doCampaigns, true); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 11:10:00'; $idBanner = DataGenerator::generateOne($doBanners); $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 0); DataGenerator::cleanUp(); // Test 4 $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = 1; $doCampaigns->status = OA_ENTITY_STATUS_RUNNING; $idCampaign = DataGenerator::generateOne($doCampaigns, true); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 11:15:00'; $idBanner = DataGenerator::generateOne($doBanners); $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 1); $this->assertEqual($aResult[$idBanner], '2006-10-04 11:15:00'); DataGenerator::cleanUp(); // Test 5 $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = 1; $doCampaigns->status = OA_ENTITY_STATUS_RUNNING; $idCampaign = DataGenerator::generateOne($doCampaigns, true); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 12:15:00'; $idBanner = DataGenerator::generateOne($doBanners); $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 1); $this->assertEqual($aResult[$idBanner], '2006-10-04 12:15:00'); DataGenerator::cleanUp(); // Test 6 $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = 1; $doCampaigns->status = OA_ENTITY_STATUS_RUNNING; $idCampaign = DataGenerator::generateOne($doCampaigns, true); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 11:10:00'; $idBanner = DataGenerator::generateOne($doBanners); $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 0); DataGenerator::cleanUp(); // Test 7 $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = 1; $doCampaigns->activate_time = '2020-01-01 00:00:00'; $doCampaigns->status = OA_ENTITY_STATUS_AWAITING; $idCampaign = DataGenerator::generateOne($doCampaigns, true); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 11:15:00'; $idBanner = DataGenerator::generateOne($doBanners); $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 0); DataGenerator::cleanUp(); // Test 8 $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = 1; $doCampaigns->activate_time = '2020-01-01 00:00:00'; $doCampaigns->status = OA_ENTITY_STATUS_AWAITING; $idCampaign = DataGenerator::generateOne($doCampaigns, true); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_AWAITING; $doBanners->acls_updated = '2006-10-04 12:15:00'; $idBanner = DataGenerator::generateOne($doBanners); $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 0); DataGenerator::cleanUp(); // Test 9 $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = 1; $doCampaigns->status = OA_ENTITY_STATUS_RUNNING; $aIdCampaignsActive = DataGenerator::generate($doCampaigns, 2, true); $doCampaigns->activate_time = '2020-01-01 00:00:00'; $doCampaigns->status = OA_ENTITY_STATUS_AWAITING; $idCampaignInactive = DataGenerator::generateOne($doCampaigns, true); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $aIdCampaignsActive[0]; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 11:30:00'; $idBanner1 = DataGenerator::generateOne($doBanners); $doBanners->campaignid = $aIdCampaignsActive[0]; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 10:15:00'; $idBanner2 = DataGenerator::generateOne($doBanners); $doBanners->campaignid = $aIdCampaignsActive[1]; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_AWAITING; $doBanners->acls_updated = '2006-10-04 12:06:00'; $idBanner3 = DataGenerator::generateOne($doBanners); $doBanners->campaignid = $aIdCampaignsActive[1]; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 12:15:00'; $idBanner4 = DataGenerator::generateOne($doBanners); $doBanners->campaignid = $idCampaignInactive; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 12:05:00'; $idBanner5 = DataGenerator::generateOne($doBanners); $doBanners->campaignid = $idCampaignInactive; $doBanners->updated = $oDateNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = '2006-10-04 12:01:00'; $idBanner5 = DataGenerator::generateOne($doBanners); $aResult =& $oMaxDalMaintenance->getAllDeliveryLimitationChangedCreatives($aLastRun); $this->assertTrue(is_array($aResult)); $this->assertEqual(count($aResult), 2); $this->assertEqual($aResult[$idBanner1], '2006-10-04 11:30:00'); $this->assertEqual($aResult[$idBanner4], '2006-10-04 12:15:00'); DataGenerator::cleanUp(); }