function testGetAll() { // test it returns empty array when no data $doCampaigns = OA_Dal::factoryDO('campaigns'); $aCheck = $doCampaigns->getAll(); $this->assertEqual($aCheck, array()); // Insert campaigns with default data // and few additional records required for testing filters $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->campaignname = $campaignName = 'test name'; $aData = array('reportlastdate' => array('2007-04-03 18:39:45')); $dg = new DataGenerator(); $dg->setData('clients', $aData); $aCampaignId = $dg->generate($doCampaigns, 2, true); $clientId = DataGenerator::getReferenceId('clients'); $aCampaignId2 = $dg->generate('campaigns', 2, true); $clientId2 = DataGenerator::getReferenceId('clients'); // test getting all records $doCampaigns = OA_Dal::factoryDO('campaigns'); $aCheck = $doCampaigns->getAll(); $this->assertEqual(count($aCheck), 4); $doCampaignsFilter = OA_Dal::factoryDO('campaigns'); $doCampaignsFilter->clientid = $clientId; // test filtering and test that rows are not indexed by primary key $doCampaigns = clone $doCampaignsFilter; $aCheck = $doCampaigns->getAll(); $this->assertEqual(count($aCheck), count($aCampaignId)); $this->assertEqual(array_keys($aCheck), array(0, 1)); // test indexing with primary keys $doCampaigns = clone $doCampaignsFilter; $aCheck = $doCampaigns->getAll(array(), $indexWithPrimaryKey = true); $aTest = array_keys($aCheck); sort($aTest); $this->assertEqual($aCampaignId, $aTest); foreach ($aCheck as $check) { $this->assertEqual($check['campaignname'], $campaignName); } // test flattening if only one field $doCampaigns = clone $doCampaignsFilter; $aCheck = $doCampaigns->getAll(array('campaignname'), $indexWithPrimaryKey = false, $flatten = true); foreach ($aCheck as $check) { $this->assertEqual($check, $campaignName); } // test that we don't have to use array if only one field is set $doCampaigns = clone $doCampaignsFilter; $aCheck2 = $doCampaigns->getAll('campaignname', $indexWithPrimaryKey = false, $flatten = true); $this->assertEqual($aCheck, $aCheck2); // test we could index by any field - not only by primary key $doCampaigns = OA_Dal::factoryDO('campaigns'); $aCheck = $doCampaigns->getAll('campaignname', $indexBy = 'clientid', $flatten = true); $this->assertEqual(count($aCheck), 2); $this->assertEqual(array_keys($aCheck), array($clientId, $clientId2)); }
/** * Test method _relinkOrDeleteUsers */ function test_relinkOrDeleteUsers() { // Insert an agency $doAgency = OA_Dal::factoryDO('agency'); $agencyId = DataGenerator::generateOne($doAgency); $managerAccountId = DataGenerator::getReferenceId('accounts'); $doAgency = OA_Dal::factoryDO('agency'); $doAgency->get($agencyId); $managerAccountId = $doAgency->account_id; // Create admin account $doAccounts = OA_Dal::factoryDO('accounts'); $doAccounts->account_type = OA_ACCOUNT_ADMIN; $adminAccountId = DataGenerator::generateOne($doAccounts); // Create user linked to admin account // Default account for this user is set to manager account $doUsers = OA_Dal::factoryDO('users'); $doUsers->default_account_id = $managerAccountId; $doUsers->username = '******'; $adminUserID = DataGenerator::generateOne($doUsers); $doAccountsUserAssoc = OA_Dal::factoryDO('account_user_assoc'); $doAccountsUserAssoc->account_id = $adminAccountId; $doAccountsUserAssoc->user_id = $adminUserID; DataGenerator::generateOne($doAccountsUserAssoc); // Create manager user $doUsers = OA_Dal::factoryDO('users'); $doUsers->default_account_id = $managerAccountId; $doUsers->username = '******'; $managerUserID = DataGenerator::generateOne($doUsers); // Now delete Agency $doAgency = OA_Dal::factoryDO('agency'); $doAgency->agencyid = $agencyId; $doAgency->onDeleteCascade = false; // Disable cascade delete $doAgency->delete(); $doAccounts = OA_Dal::factoryDO('accounts'); $doAccounts->get($managerAccountId); // Relink / Delete users here $doAccounts->_relinkOrDeleteUsers(); // Test: admin user exists, linked to admin account $doUsers = OA_Dal::factoryDO('users'); $doUsers->user_id = $adminUserID; $doUsers->find(); $this->assertTrue($doUsers->fetch()); $this->assertEqual($doUsers->default_account_id, $adminAccountId); // Test: manager users is deleted $doUsers = OA_Dal::factoryDO('users'); $doUsers->user_id = $managerUserID; $doUsers->find(); $this->assertFalse($doUsers->fetch()); }
function testGetAllCampaignsUnderAgency() { // Test it doesn't return any data if no records are added $this->assertEqual(count($this->oDalCampaigns->getAllCampaignsUnderAgency(123, 'name', 'up')), 0); // Add test data (add a little bit more than required) $numCampaigns1 = 3; $aData = array('reportlastdate' => array('2007-04-03 18:39:45')); $dg = new DataGenerator(); $dg->setData('clients', $aData); $aCampaigns1 = $dg->generate('campaigns', $numCampaigns1, true); $agencyId1 = DataGenerator::getReferenceId('agency'); $numCampaigns2 = 2; $aData = array('reportlastdate' => array('2007-04-03 18:39:45')); $dg = new DataGenerator(); $dg->setData('clients', $aData); $aCampaigns2 = $dg->generate('campaigns', $numCampaigns2, true); $agencyId2 = DataGenerator::getReferenceId('agency'); $clientId = DataGenerator::getReferenceId('clients'); $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->clientid = $clientId; $doCampaigns->campaignname = 'market campaign'; $doCampaigns->type = DataObjects_Campaigns::CAMPAIGN_TYPE_MARKET_CAMPAIGN_OPTIN; $marketCampaignId = DataGenerator::generateOne($doCampaigns); // Take test data $aCampaigns = $this->oDalCampaigns->getAllCampaignsUnderAgency($agencyId2, 'name', 'up'); $this->assertEqual(count($aCampaigns), $numCampaigns2); // Make sure that both arrays have the same sorting ksort($aCampaigns); sort($aCampaigns2); $this->assertEqual(array_keys($aCampaigns), array_values($aCampaigns2)); $aIncludeSystemTypes = array(DataObjects_Campaigns::CAMPAIGN_TYPE_MARKET_CAMPAIGN_OPTIN); $aCampaigns = $this->oDalCampaigns->getAllCampaignsUnderAgency($agencyId2, 'name', 'up', $aIncludeSystemTypes); $this->assertEqual(count($aCampaigns), $numCampaigns2 + 1); }
function testGetBannerByKeyword() { // Search for banners when none exist $expected = 0; $rsBanners = $this->dalBanners->getBannerByKeyword('foo'); $rsBanners->find(); $actual = $rsBanners->getRowCount(); $this->assertEqual($actual, $expected); $agencyId = 1; $rsBanners = $this->dalBanners->getBannerByKeyword('foo', $agencyId); $rsBanners->find(); $actual = $rsBanners->getRowCount(); $this->assertEqual($actual, $expected); // Insert a banner (and it's parent campaign/client) $doBanners = OA_Dal::factoryDO('banners'); $doBanners->description = 'foo'; $doBanners->alt = 'bar'; $doBanners->campaignid = $campaignId; $doBanners->ext_bannertype = DataObjects_Banners::BANNER_TYPE_MARKET; $doBanners->acls_updated = '2007-04-03 18:39:45'; $aData = array('reportlastdate' => array('2007-04-03 18:39:45')); $dg = new DataGenerator(); $dg->setData('clients', $aData); $bannerId = $dg->generate($doBanners, 1, true); $agencyId = $dg->getReferenceId('agency'); // Search for banner by description $expected = 0; $rsBanners = $this->dalBanners->getBannerByKeyword('foo'); $rsBanners->find(); $actual = $rsBanners->getRowCount(); $this->assertEqual($actual, $expected); $expected = 1; $rsBanners = $this->dalBanners->getBannerByKeyword('foo', null, false); $rsBanners->find(); $actual = $rsBanners->getRowCount(); $this->assertEqual($actual, $expected); // Search for banner by alt $expected = 1; $rsBanners = $this->dalBanners->getBannerByKeyword('bar', null, false); $rsBanners->find(); $actual = $rsBanners->getRowCount(); $this->assertEqual($actual, $expected); // Restrict to agency ID (client was created with default agency ID of 1) $expected = 1; $rsBanners = $this->dalBanners->getBannerByKeyword('bar', $agencyId, false); $rsBanners->find(); $actual = $rsBanners->getRowCount(); $this->assertEqual($actual, $expected); }
/** * Method adds related "parent/ancestor" records recursively. * * It should be used only to create records which have only one primary key. * * Note: in theory it should work for ancestor records with multiple primary keys * but this behaviour is undefined. * * @param string $table Table name * @param string $primaryKey Used as primary key for ancestor * @return int New ID * @access package private */ function addAncestor($table, $primaryKey = null) { $doAncestor = OA_Dal::factoryDO($table); if ($primaryKey && ($primaryKeyField = $doAncestor->getFirstPrimaryKey())) { // it's possible to preset parent id's (only one level up so far) $doAncestor->{$primaryKeyField} = $primaryKey; } if (!empty($this) && is_a($this, 'DataGenerator')) { $this->setDefaultValues($doAncestor); } else { DataGenerator::setDefaultValues($doAncestor); } $links = $doAncestor->links(); foreach ($links as $foreignKey => $linkedTableField) { list($ancestorTableWithPrefix, $link) = explode(':', $linkedTableField); $ancestorTable = $doAncestor->getTableWithoutPrefix($ancestorTableWithPrefix); if (isset($this) && is_a($this, 'DataGenerator')) { $fieldValue = $this->getFieldValueFromDataContainer($table, $foreignKey); } else { $fieldValue = DataGenerator::getFieldValueFromDataContainer($table, $foreignKey); } if (isset($fieldValue) && !isset($GLOBALS['dataGeneratorDontOptimize'])) { //hack for quick test fix $doAncestor->{$foreignKey} = $fieldValue; } else { if (isset($this) && is_a($this, 'DataGenerator')) { $doAncestor->{$foreignKey} = $this->addAncestor($ancestorTable); } else { $doAncestor->{$foreignKey} = DataGenerator::addAncestor($ancestorTable); } } } DataGenerator::trackData($table); $id = $doAncestor->insert(); DataGenerator::getReferenceId($table, $id); // store the id return $id; }
function testHasAccessToObject() { $userTables = array(OA_ACCOUNT_ADVERTISER => 'clients', OA_ACCOUNT_TRAFFICKER => 'affiliates', OA_ACCOUNT_MANAGER => 'agency'); // Test if all users have access to new objects foreach ($userTables as $userType => $userTable) { $this->assertTrue(OA_Permission::hasAccessToObject('banners', null, OA_Permission::OPERATION_ALL, rand(1, 100), $userType)); } // Create some record $doBanners = OA_Dal::factoryDO('banners'); $doBanners->acls_updated = '2007-04-05 16:18:00'; $aData = array('reportlastdate' => array('2007-04-05 16:18:00')); $dg = new DataGenerator(); $dg->setData('clients', $aData); $bannerId = $dg->generateOne($doBanners, true); $clientId = DataGenerator::getReferenceId('clients'); $doClient = OA_Dal::staticGetDO('clients', $clientId); $agencyId = DataGenerator::getReferenceId('agency'); $doAgency = OA_Dal::staticGetDO('agency', $agencyId); // Test that admin doesn't have access anymore to all objects $this->assertFalse(OA_Permission::hasAccessToObject('banners', 'booId', OA_Permission::OPERATION_ALL, 1, OA_ACCOUNT_ADMIN)); // Test accounts have access $this->assertTrue(OA_Permission::hasAccessToObject('banners', $bannerId, OA_Permission::OPERATION_ALL, $doClient->account_id, OA_ACCOUNT_ADVERTISER)); $this->assertTrue(OA_Permission::hasAccessToObject('banners', $bannerId, OA_Permission::OPERATION_ALL, $doAgency->account_id, OA_ACCOUNT_MANAGER)); // Create users who don't have access $doClients = OA_Dal::factoryDO('clients'); $doClients->reportlastdate = '2007-04-05 16:18:00'; $clientId2 = DataGenerator::generateOne($doClients); $agencyId2 = DataGenerator::generateOne('agency'); $doClientId2 = OA_Dal::staticGetDO('clients', $clientId2); $doAgency2 = OA_Dal::staticGetDO('agency', $agencyId2); $this->assertFalse(OA_Permission::hasAccessToObject('banners', $bannerId, $fakeId = 123, OA_Permission::OPERATION_ALL, OA_ACCOUNT_TRAFFICKER)); $this->assertFalse(OA_Permission::hasAccessToObject('banners', $bannerId, $doClientId2->account_id, OA_Permission::OPERATION_ALL, OA_ACCOUNT_ADVERTISER)); $this->assertFalse(OA_Permission::hasAccessToObject('banners', $bannerId, $doAgency2->account_id, OA_Permission::OPERATION_ALL, OA_ACCOUNT_MANAGER)); }
public function _commonTest($oMaxDalMaintenance, $priority) { $oNow = new Date(); $doClients = OA_Dal::factoryDO('clients'); $idClient = DataGenerator::generateOne($doClients, true); $agencyId1 = DataGenerator::getReferenceId('agency'); // Test 1 $result = $oMaxDalMaintenance->getAgencyCampaignsDeliveriesToDate($agencyId1); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 0); $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->status = OA_ENTITY_STATUS_RUNNING; $doCampaigns->clientid = $idClient; $oYesterday = new Date(); $oYesterday->subtractSeconds(86400); $oTomorrow = new Date(); $oTomorrow->addSeconds(86400); $doCampaigns->activate_time = $oYesterday->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->expire_time = $oTomorrow->format('%Y-%m-%d %H:%M:%S'); $doCampaigns->priority = '1'; $doCampaigns->active = 1; $doCampaigns->views = 100; $doCampaigns->clicks = 200; $doCampaigns->conversions = 300; $doCampaigns->updated = $oNow->format('%Y-%m-%d %H:%M:%S'); $idCampaign = DataGenerator::generateOne($doCampaigns); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign; $doBanners->active = 1; $doBanners->status = OA_ENTITY_STATUS_RUNNING; $doBanners->acls_updated = $oNow->format('%Y-%m-%d %H:%M:%S'); $doBanners->updated = $oNow->format('%Y-%m-%d %H:%M:%S'); $idBanner = DataGenerator::generateOne($doBanners); $doInterAd = OA_Dal::factoryDO('data_intermediate_ad'); $doInterAd->operation_interval = 60; $doInterAd->operation_interval_id = 0; $doInterAd->ad_id = $idBanner; $doInterAd->day = '2005-06-24'; $doInterAd->creative_id = 0; $doInterAd->zone_id = 1; $doInterAd->requests = 500; $doInterAd->impressions = 475; $doInterAd->clicks = 25; $doInterAd->conversions = 5; $doInterAd->updated = $oNow->format('%Y-%m-%d %H:%M:%S'); $doInterAd->interval_start = '2005-06-24 10:00:00'; $doInterAd->date_time = '2005-06-24 10:00:00'; $doInterAd->interval_end = '2005-06-24 10:59:59'; $doInterAd->hour = 10; $idInterAd = DataGenerator::generateOne($doInterAd); $doInterAd->interval_start = '2005-06-24 11:00:00'; $doInterAd->date_time = '2005-06-24 11:00:00'; $doInterAd->interval_end = '2005-06-24 11:59:59'; $doInterAd->hour = 11; $idInterAd = DataGenerator::generateOne($doInterAd); $result = $oMaxDalMaintenance->getAgencyCampaignsDeliveriesToDate($agencyId1); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 1); foreach ($result as $id => $data) { $this->assertEqual($idCampaign, $id); } $this->assertEqual($result[$idCampaign]['sum_impressions'], 950); $this->assertEqual($result[$idCampaign]['sum_clicks'], 50); $this->assertEqual($result[$idCampaign]['sum_conversions'], 10); // Test 3 $doClients = OA_Dal::factoryDO('clients'); $idClient2 = DataGenerator::generateOne($doClients, true); $agencyId2 = DataGenerator::getReferenceId('agency'); $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->clientid = $idClient2; $doCampaigns->priority = $priority; $doCampaigns->ecpm_enabled = 1; $doCampaigns->status = OA_ENTITY_STATUS_RUNNING; $doCampaigns->revenue_type = MAX_FINANCE_CPC; $this->idCampaign2 = DataGenerator::generateOne($doCampaigns); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $this->idCampaign2; $doBanners->status = OA_ENTITY_STATUS_RUNNING; $idBanner2 = DataGenerator::generateOne($doBanners); $doInterAd->ad_id = $idBanner2; $idInterAd = DataGenerator::generateOne($doInterAd); // Check that results for agency 1 are still the same $result = $oMaxDalMaintenance->getAgencyCampaignsDeliveriesToDate($agencyId1); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 1); foreach ($result as $id => $data) { $this->assertEqual($idCampaign, $id); } $this->assertEqual($result[$idCampaign]['sum_impressions'], 950); $this->assertEqual($result[$idCampaign]['sum_clicks'], 50); $this->assertEqual($result[$idCampaign]['sum_conversions'], 10); // Check results for agency 2 $result = $oMaxDalMaintenance->getAgencyCampaignsDeliveriesToDate($agencyId2); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 1); foreach ($result as $id => $data) { $this->assertEqual($this->idCampaign2, $id); } $this->assertEqual($result[$this->idCampaign2]['sum_impressions'], 475); $this->assertEqual($result[$this->idCampaign2]['sum_clicks'], 25); $this->assertEqual($result[$this->idCampaign2]['sum_conversions'], 5); return array($agencyId1, $agencyId2); }
function testAuditParentId() { // Insert a banner with parents $doBanners = OA_Dal::factoryDO('banners'); $doBanners->description = 'Banner A'; $bannerId = DataGenerator::generateOne($doBanners, true); $campaignId = DataGenerator::getReferenceId('campaigns'); // Delete the campaign $doCampaigns = OA_Dal::staticGetDO('campaigns', $campaignId); $doCampaigns->delete(); // Test the campaign auditid == banner parentid $oAuditCampaign = $this->_fetchAuditRecord('campaigns', OA_AUDIT_ACTION_DELETE); $this->assertNull($oAuditCampaign->parentid); $oAuditBanner = $this->_fetchAuditRecord('banners', OA_AUDIT_ACTION_DELETE); $this->assertEqual($oAuditCampaign->auditid, $oAuditBanner->parentid); DataGenerator::cleanUp(array('accounts', 'campaigns', 'banners', 'audit')); }
/** * Function creates 2 zones on 1 website and 2 campaigns 2 banners each under 1 advertiser * website and advertiser are under the same agency * * @return array Array of DB Ids in format: * array = ( 'zones' => array ( 0=> zone_id_1, ...), * 'agency => array ( 0=> agency_id ) ... ) * keys: 'zones', 'affiliates', 'agency', 'clients', 'campaigns', 'images', 'banners', 'trackers', 'channel' */ function _createTestData() { $aIds = array(); // Create zones and websites $doZones = OA_Dal::factoryDO('zones'); $doZones->zonename = 'Zone 1'; $doZones->width = 468; $doZones->height = 60; $doZones->delivery = phpAds_ZoneBanner; $aIds['zones'][0] = DataGenerator::generateOne($doZones, true); $aIds['affiliates'][0] = DataGenerator::getReferenceId('affiliates'); $aIds['agency'][0] = DataGenerator::getReferenceId('agency'); $doZones->zonename = 'Zone 2'; $doZones->affiliateid = $aIds['affiliates'][0]; $aIds['zones'][1] = DataGenerator::generateOne($doZones, true); $doClients = OA_Dal::factoryDO('clients'); $doClients->clientname = 'Advertiser 1'; $doClients->agencyid = $aIds['agency'][0]; $aIds['clients'][0] = DataGenerator::generateOne($doClients); // Create campaigns $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->campaignname = 'Campaign 1'; $doCampaigns->clientid = $aIds['clients'][0]; $aIds['campaigns'][0] = DataGenerator::generateOne($doCampaigns); $doCampaigns->campaignname = 'Campaign 2'; $aIds['campaigns'][1] = DataGenerator::generateOne($doCampaigns); // Create images and banners $doImages = OA_Dal::factoryDO('images'); for ($i = 0; $i < 4; $i++) { $aIds['images'][$i] = 'test' . $i . '.gif'; $doImages->filename = $aIds['images'][$i]; DataGenerator::generateOne($doImages); } $doBanners = OA_Dal::factoryDO('banners'); $doBanners->width = 468; $doBanners->height = 60; $doBanners->storagetype = 'sql'; $doBanners->contenttype = 'gif'; $doBanners->name = 'Banner 1-1'; $doBanners->filename = $aIds['images'][0]; $doBanners->campaignid = $aIds['campaigns'][0]; $aIds['banners'][0] = DataGenerator::generateOne($doBanners); $doBanners->name = 'Banner 1-2'; $doBanners->filename = $aIds['images'][1]; $doBanners->campaignid = $aIds['campaigns'][0]; $aIds['banners'][1] = DataGenerator::generateOne($doBanners); $doBanners->name = 'Banner 2-1'; $doBanners->filename = $aIds['images'][2]; $doBanners->campaignid = $aIds['campaigns'][1]; $aIds['banners'][2] = DataGenerator::generateOne($doBanners); $doBanners->name = 'Banner 2-2'; $doBanners->filename = $aIds['images'][3]; $doBanners->campaignid = $aIds['campaigns'][1]; $aIds['banners'][3] = DataGenerator::generateOne($doBanners); // Create tracker $doTrackers = OA_Dal::factoryDO('trackers'); $doTrackers->trackername = "Tracker 1"; $doTrackers->clientid = $aIds['clients'][0]; $aIds['trackers'][0] = DataGenerator::generateOne($doTrackers); // Create Channel $doChannel = OA_Dal::factoryDO('channel'); $doChannel->agencyid = $aIds['agency'][0]; $doChannel->affiliateid = $aIds['affiliates'][0]; $doChannel->name = 'Website channel'; $aIds['channel'][0] = DataGenerator::generateOne($doChannel); // link zones (and banners) to campaigns $dalZones = OA_Dal::factoryDAL('zones'); $dalZones->linkZonesToCampaign($aIds['zones'], $aIds['campaigns'][0]); $dalZones->linkZonesToCampaign($aIds['zones'], $aIds['campaigns'][1]); return $aIds; }
function testGetZoneByKeyword() { // Search for zones when none exist. $expected = 0; $rsZones = $this->dalZones->getZoneByKeyword('foo'); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); $agencyId = 1; $rsZones = $this->dalZones->getZoneByKeyword('foo', $agencyId); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); $affiliateId = 1; $rsZones = $this->dalZones->getZoneByKeyword('foo', null, $affiliateId); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); $affiliateId = 1; $rsZones = $this->dalZones->getZoneByKeyword('foo', $agencyId, $affiliateId); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); // Add a zone (and parent objects) $doZones = OA_Dal::factoryDO('zones'); $doZones->zonename = 'foo'; $doZones->description = 'bar'; $zoneId = DataGenerator::generateOne($doZones, true); $affiliateId1 = DataGenerator::getReferenceId('affiliates'); $agencyId1 = DataGenerator::getReferenceId('agency'); // Add another zone $doZones = OA_Dal::factoryDO('zones'); $doZones->zonename = 'baz'; $doZones->description = 'quux'; $zoneId = DataGenerator::generateOne($doZones, true); $agencyId2 = DataGenerator::getReferenceId('agency'); // Search for the zone by string $expected = 1; $rsZones = $this->dalZones->getZoneByKeyword('foo'); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); $rsZones = $this->dalZones->getZoneByKeyword('bar'); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); // Restrict the search to agency ID $expected = 0; $rsZones = $this->dalZones->getZoneByKeyword('foo', $agencyId = 0); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); $expected = 1; $rsZones = $this->dalZones->getZoneByKeyword('foo', $agencyId1); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); // Restrict the search to affiliate ID $expected = 0; $rsZones = $this->dalZones->getZoneByKeyword('foo', $agencyId, $affiliateId = 0); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); $expected = 1; $rsZones = $this->dalZones->getZoneByKeyword('foo', $agencyId1, $affiliateId1); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); $rsZones = $this->dalZones->getZoneByKeyword('bar', null, $affiliateId1); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); // Search for zone by zone ID $expected = 1; $rsZones = $this->dalZones->getZoneByKeyword($zoneId); $rsZones->find(); $actual = $rsZones->getRowCount(); $this->assertEqual($actual, $expected); }
public function _generateData($priority) { $oDbh =& OA_DB::singleton(); // Create the required temporary table for the tests $oTable =& OA_DB_Table_Priority::singleton(); $oTable->createTable('tmp_ad_zone_impression'); // set up agencies, affiliates and zones $idClient1 = DataGenerator::generateOne('clients', true); $agencyId1 = DataGenerator::getReferenceId('agency'); $idClient2 = DataGenerator::generateOne('clients', true); $agencyId2 = DataGenerator::getReferenceId('agency'); $idClient3 = DataGenerator::generateOne('clients', true); $agencyId3 = DataGenerator::getReferenceId('agency'); // Add affiliates (websites) $doAffiliates = OA_Dal::factoryDO('affiliates'); $doAffiliates->agencyid = $agencyId1; $affiliateId1 = DataGenerator::generateOne($doAffiliates); $doAffiliates = OA_Dal::factoryDO('affiliates'); $doAffiliates->agencyid = $agencyId3; $affiliateId2 = DataGenerator::generateOne($doAffiliates); $doZones = OA_Dal::factoryDO('zones'); $doZones->description = 'Test zone'; $doZones->affiliateid = $affiliateId1; $this->idZone1 = DataGenerator::generateOne($doZones); $doZones = OA_Dal::factoryDO('zones'); $doZones->description = 'Test zone'; $doZones->affiliateid = $affiliateId2; $idZone2 = DataGenerator::generateOne($doZones); $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->clientid = $idClient1; $doCampaigns->priority = --$priority; $doCampaigns->ecpm_enabled = 1; $idCampaign1 = DataGenerator::generateOne($doCampaigns); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign1; $idAd1 = DataGenerator::generateOne($doBanners); $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->clientid = $idClient1; $doCampaigns->priority = ++$priority; $doCampaigns->ecpm_enabled = 1; $idCampaign2 = DataGenerator::generateOne($doCampaigns); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign2; $idAd2 = DataGenerator::generateOne($doBanners); $doCampaigns = OA_Dal::factoryDO('campaigns'); $doCampaigns->clientid = $idClient1; $doCampaigns->priority = ++$priority; $doCampaigns->ecpm_enabled = 1; $idCampaign3 = DataGenerator::generateOne($doCampaigns); $doBanners = OA_Dal::factoryDO('banners'); $doBanners->campaignid = $idCampaign3; $idAd3 = DataGenerator::generateOne($doBanners); $query = "\n INSERT INTO\n tmp_ad_zone_impression\n (\n ad_id,\n zone_id,\n required_impressions,\n requested_impressions,\n to_be_delivered\n )\n VALUES\n (\n 1,\n {$idZone2},\n 2,\n 3,\n 1\n )"; $rows = $oDbh->exec($query); $query = "\n INSERT INTO\n tmp_ad_zone_impression\n (\n ad_id,\n zone_id,\n required_impressions,\n requested_impressions,\n to_be_delivered\n )\n VALUES\n (\n {$idAd1},\n {$this->idZone1},\n 1,\n 5,\n 1\n )"; $rows = $oDbh->exec($query); $query = "\n INSERT INTO\n tmp_ad_zone_impression\n (\n ad_id,\n zone_id,\n required_impressions,\n requested_impressions,\n to_be_delivered\n )\n VALUES\n (\n {$idAd2},\n {$this->idZone1},\n 2,\n 5,\n 1\n )"; $rows = $oDbh->exec($query); $query = "\n INSERT INTO\n tmp_ad_zone_impression\n (\n ad_id,\n zone_id,\n required_impressions,\n requested_impressions,\n to_be_delivered\n )\n VALUES\n (\n {$idAd3},\n {$this->idZone1},\n 5,\n 5,\n 1\n )"; $rows = $oDbh->exec($query); $query = "\n INSERT INTO\n tmp_ad_zone_impression\n (\n ad_id,\n zone_id,\n required_impressions,\n requested_impressions,\n to_be_delivered\n )\n VALUES\n (\n 2,\n {$this->idZone1},\n 6,\n 7,\n 0\n )"; $rows = $oDbh->exec($query); return array($agencyId1, $agencyId2); }