Example #1
0
 public function testDeleteContactCascadesMarketingListMemmers()
 {
     Yii::app()->user->userModel = User::getByUsername('super');
     $contactStates = ContactState::getByName('Qualified');
     $contact = new Contact();
     $contact->owner = Yii::app()->user->userModel;
     $contact->title->value = 'Mr.';
     $contact->firstName = 'Member';
     $contact->lastName = 'One';
     $contact->state = $contactStates[0];
     $this->assertTrue($contact->save());
     $contactId = $contact->id;
     $marketingList = MarketingListTestHelper::createMarketingListByName('Test Marketing List Member Deleted');
     $member = MarketingListMemberTestHelper::populateValidMarketingListMember(1, $marketingList, $contact);
     $this->assertTrue($member->unrestrictedSave());
     $this->assertEquals(1, count(MarketingListMember::getByContactId($contactId)));
     $testContact = new Contact();
     $testContact->owner = Yii::app()->user->userModel;
     $testContact->title->value = 'Mr.';
     $testContact->firstName = 'Member';
     $testContact->lastName = 'Two';
     $testContact->state = $contactStates[0];
     $this->assertTrue($testContact->save());
     $testContactId = $testContact->id;
     $member2 = MarketingListMemberTestHelper::populateValidMarketingListMember(1, $marketingList, $testContact);
     $this->assertTrue($member2->unrestrictedSave());
     $this->assertEquals(1, count(MarketingListMember::getByContactId($testContact->id)));
     $subscribedCount = MarketingListMember::getCountByMarketingListIdAndUnsubscribed($marketingList->id, 1);
     $this->assertEquals(2, $subscribedCount);
     $this->assertTrue($contact->delete());
     $this->assertEquals(0, count(MarketingListMember::getByContactId($contactId)));
     $this->assertTrue($testContact->delete());
     $this->assertEquals(0, count(MarketingListMember::getByContactId($testContactId)));
     $subscribedCount = MarketingListMember::getCountByMarketingListIdAndUnsubscribed($marketingList->id, 1);
     $this->assertEquals(0, $subscribedCount);
 }
Example #2
0
 /**
  * @param $contact
  * Contact::beforeDelete() resolves associated marketingListMembers, cascades deletion
  */
 public static function resolveMarketingListMembersByContact($contact)
 {
     if ($contact->id != null && $contact->id > 0) {
         $marketingListMembers = MarketingListMember::getByContactId($contact->id);
         foreach ($marketingListMembers as $marketingListMember) {
             $marketingListMember->delete();
         }
     }
 }