コード例 #1
0
 /**
  * @depends testResolveQueryStringFromUrlAndCreateOrUpdateActivityThrowsExceptionForInvalidPersonIdForUrlClickTracking
  * @expectedException NotSupportedException
  */
 public function testResolveQueryStringFromUrlAndCreateOrUpdateActivityThrowsExceptionForDuplicateActivityForUrlClickTracking()
 {
     // setup pre-req data
     $campaignItemActivities = CampaignItemActivity::getByType(CampaignItemActivity::TYPE_CLICK);
     $this->assertNotEmpty($campaignItemActivities);
     $campaignActivity = new CampaignItemActivity();
     $campaignActivity->quantity = $campaignItemActivities[0]->quantity;
     $campaignActivity->type = $campaignItemActivities[0]->type;
     $campaignActivity->campaignItem = $campaignItemActivities[0]->campaignItem;
     $campaignActivity->person = $campaignItemActivities[0]->person;
     $campaignActivity->emailMessageUrl = $campaignItemActivities[0]->emailMessageUrl;
     $this->assertTrue($campaignActivity->save());
     $modelId = $campaignItemActivities[0]->campaignItem->id;
     $modelType = get_class($campaignItemActivities[0]->campaignItem);
     $personId = $campaignItemActivities[0]->person->id;
     // get the modelClassName to use for activity object tests
     $className = 'CampaignItemActivityUtil';
     $resolveModelClassNameByModelTypeFunction = static::getProtectedMethod($className, 'resolveModelClassNameByModelType');
     $modelClassName = $resolveModelClassNameByModelTypeFunction->invokeArgs(null, array($modelType));
     $type = $modelClassName::TYPE_CLICK;
     $existingActivities = $modelClassName::getByType($type);
     $this->assertCount(2, $existingActivities);
     // get base query string
     $resolveBaseQueryStringArrayFunction = static::getProtectedMethod('ContentTrackingUtil', 'resolveBaseQueryStringArray');
     $queryStringArray = $resolveBaseQueryStringArrayFunction->invokeArgs(null, array($modelId, $modelType, $personId));
     $this->assertNotEmpty($queryStringArray);
     $this->assertCount(3, $queryStringArray);
     $this->assertArrayHasKey('modelId', $queryStringArray);
     $this->assertArrayHasKey('modelType', $queryStringArray);
     $this->assertArrayHasKey('personId', $queryStringArray);
     $queryStringArray['url'] = 'http://www.zurmo.com';
     // get hash for query string and ensure its what we expect it to be.
     $queryStringArrayHash = StringUtil::resolveHashForQueryStringArray($queryStringArray);
     $queryStringArrayDecoded = $className::resolveQueryStringArrayForHash($queryStringArrayHash);
     $this->assertNotEmpty($queryStringArrayDecoded);
     $this->assertCount(5, $queryStringArrayDecoded);
     $this->assertArrayHasKey('modelId', $queryStringArrayDecoded);
     $this->assertArrayHasKey('modelType', $queryStringArrayDecoded);
     $this->assertArrayHasKey('personId', $queryStringArrayDecoded);
     $this->assertArrayHasKey('url', $queryStringArrayDecoded);
     $this->assertArrayHasKey('type', $queryStringArrayDecoded);
     $this->assertEquals($queryStringArray['modelId'], $queryStringArrayDecoded['modelId']);
     $this->assertEquals($queryStringArray['modelType'], $queryStringArrayDecoded['modelType']);
     $this->assertEquals($queryStringArray['personId'], $queryStringArrayDecoded['personId']);
     $this->assertEquals($queryStringArray['url'], $queryStringArrayDecoded['url']);
     $this->assertNull($queryStringArrayDecoded['type']);
     // do the magic, confirm magic worked by checking return value.
     $_GET['id'] = $queryStringArrayHash;
     $result = $className::resolveQueryStringFromUrlAndCreateOrUpdateActivity();
 }
コード例 #2
0
 /**
  * @depends testCreateAndGetCampaignItemActivityById
  */
 public function testGetByType()
 {
     $campaignItemActivities = CampaignItemActivity::getByType(CampaignItemActivity::TYPE_OPEN);
     $this->assertCount(1, $campaignItemActivities);
     $campaignItemActivities = CampaignItemActivity::getByType(CampaignItemActivity::TYPE_CLICK);
     $this->assertCount(2, $campaignItemActivities);
 }