/**
  * @depends testHasAtLeastOneUnsubscribeActivity
  */
 public function testHasAtLeastOneBounceActivity()
 {
     $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 13');
     $campaign = CampaignTestHelper::createCampaign('campaign 12', 'subject 12', 'text 12', 'html 12', null, null, null, null, null, null, $marketingList);
     $this->assertNotNull($campaign);
     $contact = ContactTestHelper::createContactByNameForOwner('campaignContact 13', Yii::app()->user->userModel);
     $campaignItem = CampaignItemTestHelper::createCampaignItem(0, $campaign, $contact);
     $this->assertNotNull($campaignItem);
     $this->assertFalse($campaignItem->hasAtLeastOneBounceActivity());
     CampaignItemActivity::createNewActivity(CampaignItemActivity::TYPE_OPEN, $campaignItem->id, $contact->getClassId('Person'), null, null, $campaignItem);
     $this->assertFalse($campaignItem->hasAtLeastOneBounceActivity());
     CampaignItemActivity::createNewActivity(CampaignItemActivity::TYPE_BOUNCE, $campaignItem->id, $contact->getClassId('Person'), null, null, $campaignItem);
     $this->assertTrue($campaignItem->hasAtLeastOneBounceActivity());
     CampaignItemActivity::createNewActivity(CampaignItemActivity::TYPE_BOUNCE, $campaignItem->id, $contact->getClassId('Person'), null, null, $campaignItem);
     $this->assertTrue($campaignItem->hasAtLeastOneBounceActivity());
 }
 /**
  * @depends testCreateAndGetCampaignItemActivityById
  */
 public function testCreateNewActivity()
 {
     $url = null;
     $sourceIP = '58.10.38.112';
     $type = CampaignItemActivity::TYPE_OPEN;
     $campaignItems = CampaignItem::getAll();
     $this->assertNotEmpty($campaignItems);
     $campaignItem = $campaignItems[0];
     $persons = Person::getAll();
     $this->assertNotEmpty($persons);
     $person = $persons[0];
     $saved = CampaignItemActivity::createNewActivity($type, $campaignItem->id, $person->id, $url, $sourceIP, $campaignItem);
     $this->assertTrue($saved);
     $contact = ContactTestHelper::createContactByNameForOwner('contact 02', $this->user);
     $personId = $contact->getClassId('Person');
     // now try same thing but with a url this time.
     $type = CampaignItemActivity::TYPE_CLICK;
     $url = 'http://www.zurmo.com';
     $saved = CampaignItemActivity::createNewActivity($type, $campaignItem->id, $personId, $url, $sourceIP, $campaignItem);
     $this->assertTrue($saved);
     // test that creating the one with url created one with open too:
     $activity = CampaignItemActivity::getByTypeAndModelIdAndPersonIdAndUrl(CampaignItemActivity::TYPE_OPEN, $campaignItem->id, $personId);
     $this->assertNotEmpty($activity);
     $this->assertCount(1, $activity);
 }