/** * A method to test the getAdZoneAssociationsByAds method. * * Test 1: Test with bad input, and ensure that an empty array is retuend. * Test 2: Test with no data, and ensure that an empty array is returned. * Test 3: Test with one ad/zone link, and ensure the correct data is returned. * Test 4: Test with a more complex set of data. */ function testGetAdZoneAssociationsByAds() { $conf = $GLOBALS['_MAX']['CONF']; $oDbh =& OA_DB::singleton(); $oDal = new OA_Dal_Maintenance_Priority(); // Test 1 $result = $oDal->getAdZoneAssociationsByAds(1); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 0); // Test 2 $aAdIds = array(1); $result = $oDal->getAdZoneAssociationsByAds($aAdIds); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 0); // Test 3 $doZones = OA_Dal::factoryDO('zones'); $zoneId = DataGenerator::generateOne($doZones, true); $doAdZone = OA_Dal::factoryDO('ad_zone_assoc'); $doAdZone->ad_id = 1; $doAdZone->zone_id = $zoneId; $doAdZone->link_type = 1; $idAdZone = DataGenerator::generateOne($doAdZone); $aAdIds = array(1); $result = $oDal->getAdZoneAssociationsByAds($aAdIds); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 1); $this->assertTrue(is_array($result[1])); $this->assertEqual(count($result[1]), 1); $this->assertTrue(is_array($result[1][0])); $this->assertEqual(count($result[1][0]), 1); $this->assertTrue(isset($result[1][0]['zone_id'])); $this->assertEqual($result[1][0]['zone_id'], 1); DataGenerator::cleanUp(); // Test 4 $zoneId1 = DataGenerator::generateOne($doZones, true); $doAdZone->ad_id = 1; $doAdZone->zone_id = $zoneId1; $doAdZone->link_type = 1; $idAdZone = DataGenerator::generateOne($doAdZone); $zoneId2 = DataGenerator::generateOne($doZones, true); $doAdZone->ad_id = 1; $doAdZone->zone_id = $zoneId2; $doAdZone->link_type = 1; $idAdZone = DataGenerator::generateOne($doAdZone); $zoneId3 = DataGenerator::generateOne($doZones, true); $doAdZone->ad_id = 1; $doAdZone->zone_id = $zoneId3; $doAdZone->link_type = 1; $idAdZone = DataGenerator::generateOne($doAdZone); $doAdZone->ad_id = 2; $doAdZone->zone_id = $zoneId2; $doAdZone->link_type = 1; $idAdZone = DataGenerator::generateOne($doAdZone); $doAdZone->ad_id = 2; $doAdZone->zone_id = $zoneId3; $doAdZone->link_type = 0; $idAdZone = DataGenerator::generateOne($doAdZone); $zoneId = DataGenerator::generateOne($doZones, true); $doAdZone->ad_id = 3; $doAdZone->zone_id = $zoneId1; $doAdZone->link_type = 1; $idAdZone = DataGenerator::generateOne($doAdZone); $zoneId4 = DataGenerator::generateOne($doZones, true); $zoneId = DataGenerator::generateOne($doZones, true); $doAdZone->ad_id = 3; $doAdZone->zone_id = $zoneId4; $doAdZone->link_type = 1; $idAdZone = DataGenerator::generateOne($doAdZone); $aAdIds = array(1, 2, 3); $result = $oDal->getAdZoneAssociationsByAds($aAdIds); $this->assertTrue(is_array($result)); $this->assertEqual(count($result), 3); $this->assertTrue(is_array($result[1])); $this->assertEqual(count($result[1]), 3); $this->assertTrue(is_array($result[1][0])); $this->assertEqual(count($result[1][0]), 1); $this->assertTrue(isset($result[1][0]['zone_id'])); $this->assertEqual($result[1][0]['zone_id'], $zoneId1); $this->assertTrue(is_array($result[1][1])); $this->assertEqual(count($result[1][1]), 1); $this->assertTrue(isset($result[1][1]['zone_id'])); $this->assertEqual($result[1][1]['zone_id'], $zoneId2); $this->assertTrue(is_array($result[1][2])); $this->assertEqual(count($result[1][2]), 1); $this->assertTrue(isset($result[1][2]['zone_id'])); $this->assertEqual($result[1][2]['zone_id'], $zoneId3); $this->assertTrue(is_array($result[2])); $this->assertEqual(count($result[2]), 1); $this->assertTrue(is_array($result[2][0])); $this->assertEqual(count($result[2][0]), 1); $this->assertTrue(isset($result[2][0]['zone_id'])); $this->assertEqual($result[2][0]['zone_id'], $zoneId2); $this->assertTrue(is_array($result[3])); $this->assertEqual(count($result[3]), 2); $this->assertTrue(is_array($result[3][0])); $this->assertEqual(count($result[3][0]), 1); $this->assertTrue(isset($result[3][0]['zone_id'])); $this->assertEqual($result[3][0]['zone_id'], $zoneId1); $this->assertTrue(is_array($result[3][1])); $this->assertEqual(count($result[3][1]), 1); $this->assertTrue(isset($result[3][1]['zone_id'])); $this->assertEqual($result[3][1]['zone_id'], $zoneId4); DataGenerator::cleanUp(); }