Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
ExternalApiEmailMessageActivityTest.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
38  {
39  protected $user;
40 
41  public static function setUpBeforeClass()
42  {
43  parent::setUpBeforeClass();
44  SecurityTestHelper::createSuperAdmin();
45  }
46 
47  public function setUp()
48  {
49  parent::setUp();
50  $this->user = User::getByUsername('super');
51  Yii::app()->user->userModel = $this->user;
52  }
53 
54  public function testGetCountByTypeAndEmailMessageActivity()
55  {
56  // setup pre-req data
57  $contact = ContactTestHelper::createContactByNameForOwner('contact 01', $this->user);
58  $marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 01',
59  'description 01',
60  'fromName 01',
61  'fromAddress01@domain.com');
62  $campaign = CampaignTestHelper::createCampaign('campaign 01',
63  'subject 01',
64  'text Content 01',
65  'html Content 01',
66  'fromName 01',
67  'fromAddress01@zurmo.com',
68  null,
69  null,
70  null,
71  null,
72  $marketingList);
73  $processed = 0;
74  $campaignItem = CampaignItemTestHelper::createCampaignItem($processed, $campaign, $contact);
75  $modelId = $campaignItem->id;
76  $modelType = get_class($campaignItem);
77  $personId = $contact->getClassId('Person');
78  $this->assertNotNull($personId);
79  $activityData = array('modelId' => $campaignItem->id,
80  'modelType' => 'CampaignItem',
81  'personId' => $personId,
82  'url' => null,
83  'type' => CampaignItemActivity::TYPE_OPEN);
84  $activityCreatedOrUpdated = CampaignItemActivityUtil::createOrUpdateActivity($activityData);
85  $emailMessageActivities = CampaignItemActivity::getByTypeAndModelIdAndPersonIdAndUrl(CampaignItemActivity::TYPE_OPEN, $campaignItem->id, $personId, null);
86  $externalMessageActivityCount = ExternalApiEmailMessageActivity::getByTypeAndEmailMessageActivity(CampaignItemActivity::TYPE_OPEN, $emailMessageActivities[0], "sendgrid");
87  $this->assertEquals(0, $externalMessageActivityCount);
88 
89  $externalApiEmailMessageActivity = new ExternalApiEmailMessageActivity();
90  $externalApiEmailMessageActivity->emailMessageActivity = $emailMessageActivities[0];
91  $externalApiEmailMessageActivity->api = 'sendgrid';
92  $externalApiEmailMessageActivity->type = CampaignItemActivity::TYPE_OPEN;
93  $externalApiEmailMessageActivity->reason = 'Test reason';
94  $externalApiEmailMessageActivity->emailAddress = 'abc@yahoo.com';
95  $externalApiEmailMessageActivity->itemClass = 'CampaignItem';
96  $externalApiEmailMessageActivity->itemId = $campaignItem->id;
97  $this->assertTrue($externalApiEmailMessageActivity->save());
98  $id = $externalApiEmailMessageActivity->id;
99  $externalMessageActivityCount = ExternalApiEmailMessageActivity::getByTypeAndEmailMessageActivity(CampaignItemActivity::TYPE_OPEN, $emailMessageActivities[0], "sendgrid");
100  $this->assertEquals(1, $externalMessageActivityCount);
101  $externalApiActivity = ExternalApiEmailMessageActivity::getById($id);
102  $externalApiActivity->reason = 'New reason 1';
103  $this->assertTrue($externalApiActivity->save());
104  $externalApiActivity = ExternalApiEmailMessageActivity::getById($id);
105  $this->assertEquals('New reason 1', $externalApiActivity->reason);
106  $activities = ExternalApiEmailMessageActivity::getByEmailAddress('abc@yahoo.com', "sendgrid", false);
107  $this->assertEquals(1, count($activities));
108  $this->assertEquals('New reason 1', $activities[0]->reason);
109  }
110  }
111 ?>
static getByUsername($username)
Definition: User.php:49
static createOrUpdateActivity($queryStringArray)
static getByEmailAddress($email, $api, $isCount=true)
static getById($id, $modelClassName=null)
static getByTypeAndEmailMessageActivity($type, $itemActivity, $api, $isCount=true)
Generated on Sat Aug 15 2020 07:10:33
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.