/**
  * @depends testResolveQueryStringFromUrlAndCreateNewActivityThrowsExceptionForDecipherableHexadecimalHashWithMissingParameters
  */
 public function testResolveQueryStringFromUrlAndCreateNewActivityDoesNotThrowsExceptionForMissingUrlParameter()
 {
     $queryStringArray = array('modelId' => 1, 'modelType' => 'ModelClassName', 'personId' => 2);
     $hash = StringUtil::resolveHashForQueryStringArray($queryStringArray);
     $result = EmailMessageActivityUtil::resolveQueryStringArrayForHash($hash);
     $this->assertTrue(is_array($result));
     $this->assertCount(5, $result);
     $this->assertArrayHasKey('modelId', $result);
     $this->assertArrayHasKey('modelType', $result);
     $this->assertArrayHasKey('personId', $result);
     $this->assertArrayHasKey('url', $result);
     $this->assertArrayHasKey('type', $result);
     $this->assertEquals($queryStringArray['modelId'], $result['modelId']);
     $this->assertEquals($queryStringArray['modelType'], $result['modelType']);
     $this->assertEquals($queryStringArray['personId'], $result['personId']);
     $this->assertNull($result['url']);
     $this->assertNull($result['type']);
 }
 /**
  * @depends testResolveManageSubscriptionsUrlWithMissingSomeOptionalParams
  */
 public function testResolveManageSubscriptionsUrlWithoutModel()
 {
     $errorOnFirstMissing = MergeTagsToModelAttributesAdapter::DO_NOT_ERROR_ON_FIRST_INVALID_TAG;
     $model = null;
     $params = array('personId' => 1, 'marketingListId' => 2, 'modelId' => 3, 'modelType' => 'AutoresponderItem', 'createNewActivity' => true, 'preview' => false);
     $expected = GlobalMarketingFooterUtil::resolveManageSubscriptionsUrlByArray($params);
     $this->assertContains('marketingLists/external/manageSubscriptions?hash=', $expected);
     $resolved = SpecialMergeTagsAdapter::resolve('manageSubscriptionsUrl', $model, $errorOnFirstMissing, $params);
     $this->assertContains('marketingLists/external/manageSubscriptions?hash=', $resolved);
     $expectedHash = static::extractHashFromUrl($expected);
     $resolvedHash = static::extractHashFromUrl($resolved);
     $expectedReversed = EmailMessageActivityUtil::resolveQueryStringArrayForHash($expectedHash);
     $resolvedReversed = EmailMessageActivityUtil::resolveQueryStringArrayForHash($resolvedHash);
     $this->assertEquals($expectedReversed, $resolvedReversed);
 }
 protected function resolveAndValidateQueryStringHash($hash)
 {
     return EmailMessageActivityUtil::resolveQueryStringArrayForHash($hash, true, false);
 }