Ejemplo n.º 1
0
 public function populateModel(&$model)
 {
     //todo: assert instanceof Person or mixes in Person.
     parent::populateModel($model);
     $personRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('ZurmoModule', 'Person');
     $jobTitlesAndDepartments = RandomDataUtil::getRandomValueFromArray($personRandomData['jobTitlesAndDepartments']);
     $lastName = RandomDataUtil::getRandomValueFromArray($personRandomData['lastNames']);
     if ($model->firstName == null && RandomDataUtil::getRandomBooleanValue()) {
         $model->firstName = RandomDataUtil::getRandomValueFromArray($personRandomData['femaleFirstNames']);
         $title = RandomDataUtil::getRandomValueFromArray($personRandomData['femaleTitles']);
     } elseif ($model->firstName == null) {
         $model->firstName = RandomDataUtil::getRandomValueFromArray($personRandomData['maleFirstNames']);
         $title = RandomDataUtil::getRandomValueFromArray($personRandomData['maleTitles']);
     }
     if ($model->lastName == null) {
         $model->lastName = $lastName;
     }
     $model->title->value = $title;
     $model->jobTitle = $jobTitlesAndDepartments[0];
     $model->department = $jobTitlesAndDepartments[1];
     $model->officePhone = RandomDataUtil::makeRandomPhoneNumber();
     $model->officeFax = RandomDataUtil::makeRandomPhoneNumber();
     $model->mobilePhone = RandomDataUtil::makeRandomPhoneNumber();
     $model->primaryEmail = static::makeEmailAddressByPerson($model);
     $model->primaryAddress = ZurmoRandomDataUtil::makeRandomAddress();
 }
 public static function populateAutoresponder($subject, $textContent, $htmlContent, $fromOperationDurationInterval, $operationType, $enableTracking = false, $marketingList = null)
 {
     assert('is_string($subject)');
     assert('is_string($textContent)');
     assert('is_string($htmlContent) || $htmlContent === null');
     assert('is_int($fromOperationDurationInterval)');
     assert('is_int($operationType)');
     assert('is_bool($enableTracking) || is_int($enableTracking)');
     assert('is_object($marketingList) || $marketingList === null');
     if (empty($marketingList)) {
         $marketingLists = MarketingList::getAll();
         if (!empty($marketingLists)) {
             $marketingList = RandomDataUtil::getRandomValueFromArray($marketingLists);
         }
     }
     $autoresponder = new Autoresponder();
     $autoresponder->subject = $subject;
     $autoresponder->textContent = $textContent;
     $autoresponder->htmlContent = $htmlContent;
     $autoresponder->fromOperationDurationInterval = $fromOperationDurationInterval;
     $autoresponder->fromOperationDurationType = TimeDurationUtil::DURATION_TYPE_DAY;
     $autoresponder->operationType = $operationType;
     $autoresponder->enableTracking = $enableTracking;
     $autoresponder->marketingList = $marketingList;
     return $autoresponder;
 }
 public static function populateAutoresponderItem($processed, $processDateTime, $autoresponder = null, $contact = null)
 {
     assert('is_string($processed) || is_int($processed)');
     assert('is_string($processDateTime)');
     assert('is_object($autoresponder) || $autoresponder === null');
     assert('is_object($contact) || $contact === null');
     if (empty($autoresponder)) {
         $autoresponders = Autoresponder::getAll();
         if (!empty($autoresponders)) {
             $autoresponder = RandomDataUtil::getRandomValueFromArray($autoresponders);
         }
     }
     if (empty($contact)) {
         $contacts = Contact::getAll();
         if (!empty($contacts)) {
             $contact = RandomDataUtil::getRandomValueFromArray($contacts);
         }
     }
     $autoresponderItem = new AutoresponderItem();
     $autoresponderItem->processed = $processed;
     $autoresponderItem->processDateTime = $processDateTime;
     $autoresponderItem->autoresponder = $autoresponder;
     $autoresponderItem->contact = $contact;
     return $autoresponderItem;
 }
Ejemplo n.º 4
0
 public function populateModel(&$model)
 {
     assert('$model instanceof Contact');
     parent::populateModel($model);
     $accountRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('AccountsModule', 'Account');
     $name = RandomDataUtil::getRandomValueFromArray($accountRandomData['names']);
     $model->companyName = $name;
 }
 public function testDemoDataMaker()
 {
     $productCategory = new ProductCategory();
     $productTemplateRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('ProductTemplatesModule', 'ProductCategory');
     $name = RandomDataUtil::getRandomValueFromArray($productTemplateRandomData['names']);
     $productCategory->name = $name;
     $this->assertTrue($productCategory->save());
     $productCategories[] = $productCategory->id;
 }
 public static function populateCampaign($name, $subject, $textContent, $htmlContent = null, $fromName = null, $fromAddress = null, $supportsRichText = null, $status = null, $sendOnDateTime = null, $enableTracking = null, $marketingList = null)
 {
     assert('is_string($name)');
     assert('is_string($subject)');
     assert('is_string($textContent) || $textContent === null');
     assert('is_string($htmlContent) || $htmlContent === null');
     assert('is_string($fromName) || $fromName === null');
     assert('is_string($fromAddress) || $fromAddress === null');
     assert('is_bool($supportsRichText) || is_int($supportsRichText) || $supportsRichText === null');
     assert('is_string($status) || is_int($status) || $status === null');
     assert('is_string($sendOnDateTime) || is_int($sendOnDateTime) || $sendOnDateTime === null');
     assert('is_bool($enableTracking) || is_int($enableTracking) || $enableTracking === null');
     assert('is_object($marketingList) || $marketingList === null');
     if ($supportsRichText === null) {
         $supportsRichText = 1;
         if ($htmlContent === null) {
             $htmlContent = 'test html content';
         }
     }
     if ($sendOnDateTime === null) {
         $sendOnDateTime = '0000-00-00 00:00:00';
     }
     if ($status === null) {
         $status = Campaign::STATUS_ACTIVE;
     }
     if ($enableTracking === null) {
         $enableTracking = 1;
     }
     if ($fromName === null) {
         $fromName = 'Support Team';
     }
     if ($fromAddress === null) {
         $fromAddress = '*****@*****.**';
     }
     if (empty($marketingList)) {
         $marketingLists = MarketingList::getAll();
         if (!empty($marketingLists)) {
             $marketingList = RandomDataUtil::getRandomValueFromArray($marketingLists);
         }
     }
     $campaign = new Campaign();
     $campaign->name = $name;
     $campaign->subject = $subject;
     $campaign->textContent = $textContent;
     $campaign->htmlContent = $htmlContent;
     $campaign->status = $status;
     $campaign->fromName = $fromName;
     $campaign->fromAddress = $fromAddress;
     $campaign->supportsRichText = $supportsRichText;
     $campaign->enableTracking = $enableTracking;
     $campaign->sendOnDateTime = $sendOnDateTime;
     $campaign->marketingList = $marketingList;
     return $campaign;
 }
 public function populateModel(&$model)
 {
     assert('$model instanceof Contact');
     parent::populateModel($model);
     $domainName = static::resolveDomainName($model);
     $source = RandomDataUtil::getRandomValueFromArray(static::getCustomFieldDataByName('LeadSources'));
     $industry = RandomDataUtil::getRandomValueFromArray(static::getCustomFieldDataByName('Industries'));
     $model->website = static::makeUrlByDomainName($domainName);
     $model->source->value = $source;
     $model->industry->value = $industry;
 }
 /**
  * @param RedBeanModel $model
  */
 public function populateModel(&$model)
 {
     assert('$model instanceof Note');
     parent::populateModel($model);
     $taskRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('NotesModule', 'Note');
     $description = RandomDataUtil::getRandomValueFromArray($taskRandomData['descriptions']);
     $occurredOnTimeStamp = time() - mt_rand(1, 200) * 60 * 60 * 24;
     $occurredOnDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($occurredOnTimeStamp);
     $model->description = $description;
     $model->occurredOnDateTime = $occurredOnDateTime;
 }
 /**
  * Make an Address object.
  */
 public static function makeRandomAddress()
 {
     $addressRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('ZurmoModule', 'Address');
     $streetName = RandomDataUtil::getRandomValueFromArray($addressRandomData['streetNames']);
     $direction = RandomDataUtil::getRandomValueFromArray($addressRandomData['directions']);
     $streetSuffix = RandomDataUtil::getRandomValueFromArray($addressRandomData['streetSuffixes']);
     $cityStatePostalCodeData = RandomDataUtil::getRandomValueFromArray($addressRandomData['cityStatePostalCode']);
     $address = new Address();
     $address->street1 = mt_rand(1000, 40000) . ' ' . $direction . ' ' . $streetName . ' ' . $streetSuffix;
     $address->city = $cityStatePostalCodeData[0];
     $address->state = $cityStatePostalCodeData[1];
     $address->postalCode = RandomDataUtil::getRandomValueFromArray($cityStatePostalCodeData[2]);
     return $address;
 }
Ejemplo n.º 10
0
 /**
  * Method for testing creating a simple notification for the current user.
  */
 public function actionGenerateManageSubscriptionHash()
 {
     if (Yii::app()->user->userModel->username != 'super') {
         throw new NotSupportedException();
     }
     $contact = RandomDataUtil::getRandomValueFromArray(Contact::getAll());
     $personId = $contact->getClassId('Person');
     $marketingList = RandomDataUtil::getRandomValueFromArray(MarketingList::getAll());
     $marketingListId = $marketingList->id;
     $model = RandomDataUtil::getRandomValueFromArray(CampaignItem::getAll());
     $modelId = $model->id;
     $modelType = get_class($model);
     $hash = EmailMessageActivityUtil::resolveHashForUnsubscribeAndManageSubscriptionsUrls($personId, $marketingListId, $modelId, $modelType, false);
     echo 'index.php/marketingLists/external/manageSubscriptions?hash=' . $hash;
 }
Ejemplo n.º 11
0
 /**
  * Method for testing creating a simple notification for the current user.
  */
 public function actionGenerateManageSubscriptionHash()
 {
     if (!Group::isUserASuperAdministrator(Yii::app()->user->userModel)) {
         throw new NotSupportedException();
     }
     $contact = RandomDataUtil::getRandomValueFromArray(Contact::getAll());
     $personId = $contact->getClassId('Person');
     $marketingList = RandomDataUtil::getRandomValueFromArray(MarketingList::getAll());
     $marketingListId = $marketingList->id;
     $model = RandomDataUtil::getRandomValueFromArray(CampaignItem::getAll());
     $modelId = $model->id;
     $modelType = get_class($model);
     $hash = GlobalMarketingFooterUtil::resolveHash($personId, $marketingListId, $modelId, $modelType, false);
     echo 'index.php/marketingLists/external/manageSubscriptions?hash=' . $hash;
 }
 /**
  * @param RedBeanModel $model
  */
 public function populateModel(&$model)
 {
     assert('$model instanceof Opportunity');
     $opportunityRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('OpportunitiesModule', 'Opportunity');
     parent::populateModel($model);
     $name = RandomDataUtil::getRandomValueFromArray($opportunityRandomData['names']);
     $model->name = $name;
     $stage = RandomDataUtil::getRandomValueFromArray(static::getCustomFieldDataByName('SalesStages'));
     $source = RandomDataUtil::getRandomValueFromArray(static::getCustomFieldDataByName('LeadSources'));
     $model->stage->value = $stage;
     $model->source->value = $source;
     $futureTimeStamp = time() + mt_rand(1, 200) * 60 * 60 * 24;
     $closeDate = Yii::app()->dateFormatter->format(DatabaseCompatibilityUtil::getDateFormat(), $futureTimeStamp);
     $model->closeDate = $closeDate;
     $model->amount->value = mt_rand(5, 350) * 1000;
 }
Ejemplo n.º 13
0
 public function populateModel(&$model)
 {
     assert('$model instanceof Task');
     parent::populateModel($model);
     $taskRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('TasksModule', 'Task');
     $name = RandomDataUtil::getRandomValueFromArray($taskRandomData['names']);
     if (RandomDataUtil::getRandomBooleanValue()) {
         $dueTimeStamp = time() - mt_rand(1, 50) * 60 * 60 * 24;
         $completedDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($dueTimeStamp + mt_rand(1, 24) * 15);
         $model->completedDateTime = $completedDateTime;
         $model->completed = true;
     } else {
         $dueTimeStamp = time() + mt_rand(1, 200) * 60 * 60 * 24;
     }
     $dueDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($dueTimeStamp);
     $model->name = $name;
     $model->dueDateTime = $dueDateTime;
 }
Ejemplo n.º 14
0
 public static function fillAutoresponder($name, $subject, $textContent, $htmlContent, $secondsFromOperation, $operationType, $marketingList = null)
 {
     if (empty($marketingList)) {
         $marketingLists = MarketingList::getAll();
         if (!empty($marketingLists)) {
             $marketingList = RandomDataUtil::getRandomValueFromArray($marketingLists);
         }
     }
     $autoresponder = new Autoresponder();
     $autoresponder->name = $name;
     $autoresponder->subject = $subject;
     $autoresponder->textContent = $textContent;
     $autoresponder->htmlContent = $htmlContent;
     $autoresponder->secondsFromOperation = $secondsFromOperation;
     $autoresponder->operationType = $operationType;
     $autoresponder->marketingList = $marketingList;
     return $autoresponder;
 }
 /**
  * @param RedBeanModel $model
  */
 public function populateModel(&$model)
 {
     assert('$model instanceof Account');
     parent::populateModel($model);
     $accountRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('AccountsModule', 'Account');
     $name = RandomDataUtil::getRandomValueFromArray($accountRandomData['names']);
     $domainName = static::makeDomainByName(strval($model));
     $type = RandomDataUtil::getRandomValueFromArray(static::getCustomFieldDataByName('AccountTypes'));
     $industry = RandomDataUtil::getRandomValueFromArray(static::getCustomFieldDataByName('Industries'));
     $model->name = $name;
     $model->website = static::makeUrlByDomainName($domainName);
     $model->type->value = $type;
     $model->industry->value = $industry;
     $model->officePhone = RandomDataUtil::makeRandomPhoneNumber();
     $model->officeFax = RandomDataUtil::makeRandomPhoneNumber();
     $model->primaryEmail = static::makeEmailAddressByAccount($model);
     $model->billingAddress = ZurmoRandomDataUtil::makeRandomAddress();
     $model->employees = mt_rand(1, 95) * 10;
     $model->annualRevenue = mt_rand(1, 780) * 1000000;
 }
 public static function populateMarketingListMember($unsubscribed = 0, $marketingList = null, $contact = null)
 {
     if (empty($marketingList)) {
         $marketingLists = MarketingList::getAll();
         if (!empty($marketingLists)) {
             $marketingList = RandomDataUtil::getRandomValueFromArray($marketingLists);
         }
     }
     if (empty($contact)) {
         $contacts = Contact::getAll();
         if (!empty($contacts)) {
             $contact = RandomDataUtil::getRandomValueFromArray($contacts);
         }
     }
     $marketingListMember = new MarketingListMember();
     $marketingListMember->unsubscribed = $unsubscribed;
     $marketingListMember->contact = $contact;
     $marketingListMember->marketingList = $marketingList;
     return $marketingListMember;
 }
Ejemplo n.º 17
0
 public static function fillAutoresponderItem($processed, $processDateTime, $autoresponder = null, $contact = null)
 {
     if (empty($autoresponder)) {
         $autoresponders = Autoresponder::getAll();
         if (!empty($autoresponders)) {
             $autoresponder = RandomDataUtil::getRandomValueFromArray($autoresponders);
         }
     }
     if (empty($contact)) {
         $contacts = Contact::getAll();
         if (!empty($contacts)) {
             $contact = RandomDataUtil::getRandomValueFromArray($contacts);
         }
     }
     $autoresponderItem = new AutoresponderItem();
     $autoresponderItem->processed = $processed;
     $autoresponderItem->processDateTime = $processDateTime;
     $autoresponderItem->autoresponder = $autoresponder;
     $autoresponderItem->contact = $contact;
     return $autoresponderItem;
 }
 /**
  * @param DemoDataHelper $demoDataHelper
  */
 public function makeAll(&$demoDataHelper)
 {
     assert('$demoDataHelper instanceof DemoDataHelper');
     assert('$demoDataHelper->isSetRange("User")');
     $contactStates = ContactState::getAll();
     $statesBeginningWithStartingState = ContactsDemoDataMaker::getStatesBeforeOrStartingWithStartingState($contactStates);
     $contactWebForms = array();
     for ($this->index = 0; $this->index < 5; $this->index++) {
         $contactWebForm = new ContactWebForm();
         $contactWebForm->owner = $demoDataHelper->getRandomByModelName('User');
         $contactWebForm->defaultOwner = $contactWebForm->owner;
         $contactWebForm->defaultState = RandomDataUtil::getRandomValueFromArray($statesBeginningWithStartingState);
         $this->populateModel($contactWebForm);
         $contactWebForm->addPermissions(Group::getByName(Group::EVERYONE_GROUP_NAME), Permission::READ_WRITE_CHANGE_PERMISSIONS_CHANGE_OWNER);
         $saved = $contactWebForm->save();
         assert('$saved');
         $contactWebForm = ContactWebForm::getById($contactWebForm->id);
         AllPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($contactWebForm, Group::getByName(Group::EVERYONE_GROUP_NAME));
         $contactWebForm->save();
         $contactWebForms[] = $contactWebForm->id;
     }
     $demoDataHelper->setRangeByModelName('ContactWebForm', $contactWebForms[0], $contactWebForms[count($contactWebForms) - 1]);
 }
Ejemplo n.º 19
0
 public static function populateCampaignItem($processed, $campaign = null, $contact = null)
 {
     assert('is_bool($processed)');
     assert('is_object($campaign) || $campaign === null');
     assert('is_object($contact) || $contact === null');
     if (empty($campaign)) {
         $campaigns = Campaign::getAll();
         if (!empty($campaigns)) {
             $campaign = RandomDataUtil::getRandomValueFromArray($campaigns);
         }
     }
     if (empty($contact)) {
         $contacts = Contact::getAll();
         if (!empty($contacts)) {
             $contact = RandomDataUtil::getRandomValueFromArray($contacts);
         }
     }
     $campaignItem = new CampaignItem();
     $campaignItem->processed = $processed;
     $campaignItem->campaign = $campaign;
     $campaignItem->contact = $contact;
     return $campaignItem;
 }
 public function populateModel(&$model)
 {
     assert('$model instanceof Campaign');
     parent::populateModel($model);
     if (empty($this->seedData)) {
         $this->seedData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('CampaignsModule', 'Campaign');
     }
     $statusKeys = array_keys(Campaign::getStatusDropDownArray());
     $timestamp = time();
     $model->name = $this->seedData['name'][$this->index];
     $model->subject = $this->seedData['subject'][$this->index];
     $model->status = RandomDataUtil::getRandomValueFromArray($statusKeys);
     if (!(rand() % 2)) {
         $timestamp += rand(500, 5000);
     }
     $model->sendOnDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($timestamp);
     $model->supportsRichText = rand() % 2;
     $model->htmlContent = $this->seedData['htmlContent'][$this->index];
     $model->textContent = $this->seedData['textContent'][$this->index];
     $model->fromName = $this->seedData['fromName'][$this->index];
     $model->fromAddress = $this->seedData['fromAddress'][$this->index];
     $model->enableTracking = rand() % 2;
     $this->populateMarketingModelWithFiles($model);
 }
Ejemplo n.º 21
0
 /**
  * @depends testGetByProcessedAndCampaignId
  */
 public function testGetLabel()
 {
     $campaignItem = RandomDataUtil::getRandomValueFromArray(CampaignItem::getAll());
     $this->assertNotNull($campaignItem);
     $this->assertEquals('Campaign Item', $campaignItem::getModelLabelByTypeAndLanguage('Singular'));
     $this->assertEquals('Campaign Items', $campaignItem::getModelLabelByTypeAndLanguage('Plural'));
 }
 /**
  * Add demo tasks for the project
  * @param type $project
  */
 protected static function addDemoTasks($project, $taskInputCount = 1, &$demoDataHelper)
 {
     $randomTasks = self::getRandomTasks();
     for ($i = 0; $i < count($randomTasks); $i++) {
         $task = new Task();
         $task->name = $randomTasks[$i]['name'];
         $task->owner = $demoDataHelper->getRandomByModelName('User');
         $task->requestedByUser = $demoDataHelper->getRandomByModelName('User');
         $task->completedDateTime = '0000-00-00 00:00:00';
         $task->project = $project;
         $task->status = Task::STATUS_NEW;
         $task->save();
         //Notification subscriber
         $notificationSubscriber = new NotificationSubscriber();
         $notificationSubscriber->person = $demoDataHelper->getRandomByModelName('User');
         $notificationSubscriber->hasReadLatest = false;
         //Task check list items
         $task->notificationSubscribers->add($notificationSubscriber);
         $taskCheckListItems = $randomTasks[$i]['checkListItems'];
         foreach ($taskCheckListItems as $itemKey => $name) {
             $taskCheckListItem = new TaskCheckListItem();
             $taskCheckListItem->name = $name;
             if ($itemKey * $i * rand(5, 100) % 3 == 0) {
                 $taskCheckListItem->completed = true;
             }
             $task->checkListItems->add($taskCheckListItem);
             ProjectsUtil::logTaskCheckItemEvent($task, $taskCheckListItem);
         }
         //Comments
         $commentItems = $randomTasks[$i]['comments'];
         foreach ($commentItems as $description) {
             $comment = new Comment();
             $comment->description = $description;
             $comment->setScenario('importModel');
             $comment->createdByUser = $demoDataHelper->getRandomByModelName('User');
             $task->comments->add($comment);
             ProjectsUtil::logAddCommentEvent($task, strval($comment));
         }
         //Add Super user
         $comment = new Comment();
         $comment->description = 'Versatile idea regarding the task';
         $task->comments->add($comment);
         $task->addPermissions(Group::getByName(Group::EVERYONE_GROUP_NAME), Permission::READ_WRITE_CHANGE_PERMISSIONS_CHANGE_OWNER);
         $task->save();
         $currentStatus = $task->status;
         ProjectsUtil::logAddTaskEvent($task);
         $task = Task::getById($task->id);
         $task->status = RandomDataUtil::getRandomValueFromArray(self::getTaskStatusOptions());
         $task->save();
         AllPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($task, Group::getByName(Group::EVERYONE_GROUP_NAME));
         $task->save();
         ProjectsUtil::logTaskStatusChangeEvent($task, Task::getStatusDisplayName($currentStatus), Task::getStatusDisplayName(intval($task->status)));
     }
 }
 /**
  * @depends testCreateAndGetAutoresponderItemActivityById
  */
 public function testGetLabel()
 {
     $autoresponderItemActivity = RandomDataUtil::getRandomValueFromArray(AutoresponderItemActivity::getAll());
     $this->assertNotNull($autoresponderItemActivity);
     $this->assertEquals('Autoresponder Item Activity', $autoresponderItemActivity::getModelLabelByTypeAndLanguage('Singular'));
     $this->assertEquals('Autoresponder Item Activities', $autoresponderItemActivity::getModelLabelByTypeAndLanguage('Plural'));
 }
 /**
  * @depends testCreateAndGetEmailMessageUrlById
  */
 public function testGetLabel()
 {
     $emailMessageUrl = RandomDataUtil::getRandomValueFromArray(EmailMessageUrl::getAll());
     $this->assertNotNull($emailMessageUrl);
     $this->assertEquals('Email Message Url', $emailMessageUrl::getModelLabelByTypeAndLanguage('Singular'));
     $this->assertEquals('Email Message Urls', $emailMessageUrl::getModelLabelByTypeAndLanguage('Plural'));
 }
 /**
  * @depends testCreateAndGetMarketingListMemberById
  */
 public function testAddNewMemberSkipsDuplicate()
 {
     $marketingList = MarketingListTestHelper::createMarketingListByName('test marketing List 03');
     $this->assertNotNull($marketingList);
     $contact = RandomDataUtil::getRandomValueFromArray(Contact::getAll());
     $this->assertNotNull($contact);
     $added = $marketingList->addNewMember($contact->id, false, $contact);
     $this->assertTrue($added);
     $added = $marketingList->addNewMember($contact->id, false, $contact);
     $this->assertFalse($added);
     $memberCount = $marketingList->memberAlreadyExists($contact->id);
     $this->assertEquals(1, $memberCount);
     $marketingList = MarketingListTestHelper::createMarketingListByName('test marketing List 04');
     $this->assertNotNull($marketingList);
     $added = $marketingList->addNewMember($contact->id, false, $contact);
     $this->assertTrue($added);
 }
 /**
  * @param RedBeanModel $model
  * @param bool $setInFuture
  */
 public function populateModel(&$model, $setInFuture = true)
 {
     assert('$model instanceof Meeting');
     parent::populateModel($model);
     $meetingRandomData = ZurmoRandomDataUtil::getRandomDataByModuleAndModelClassNames('MeetingsModule', 'Meeting');
     $name = RandomDataUtil::getRandomValueFromArray($meetingRandomData['names']);
     $category = RandomDataUtil::getRandomValueFromArray(static::getCustomFieldDataByName('MeetingCategories'));
     $location = RandomDataUtil::getRandomValueFromArray($meetingRandomData['locations']);
     if ($setInFuture) {
         $startTimeStamp = time() + mt_rand(1, 60) * 60 * 60 * 24;
         $startDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($startTimeStamp);
         $endDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($startTimeStamp + mt_rand(1, 24) * 15);
     } else {
         $startTimeStamp = time() - mt_rand(1, 30) * 60 * 60 * 24;
         $startDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($startTimeStamp);
         $endDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime($startTimeStamp + mt_rand(1, 24) * 15);
     }
     $model->name = $name;
     $model->category->value = $category;
     $model->location = $location;
     $model->startDateTime = $startDateTime;
     $model->endDateTime = $endDateTime;
 }
 public function testExportWithSelectAllForMoreThan10Records()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     $accounts = Account::getAll();
     foreach ($accounts as $account) {
         $account->delete();
     }
     $exportItems = ExportItem::getAll();
     foreach ($exportItems as $exportItem) {
         $exportItem->delete();
     }
     $numberOfRecords = rand(12, 100);
     ExportModule::$asynchronusThreshold = $numberOfRecords - 1;
     for ($i = 1; $i <= $numberOfRecords; $i++) {
         $randomData = RandomDataUtil::getRandomDataByModuleAndModelClassNames('AccountsModule', 'Account');
         AccountTestHelper::createAccountByNameForOwner($randomData['names'][$i], $super);
     }
     $this->setGetArray(array('Account_page' => '1', 'export' => '', 'selectAll' => '1', 'selectedIds' => '', 'ajax' => ''));
     $this->runControllerWithRedirectExceptionAndGetUrl('accounts/default/export');
     // Start background job
     $job = new ExportJob();
     $this->assertTrue($job->run());
     $exportItems = ExportItem::getAll();
     $this->assertEquals(1, count($exportItems));
     $fileModel = $exportItems[0]->exportFileModel;
     $this->assertEquals(1, $exportItems[0]->isCompleted);
     $this->assertEquals('csv', $exportItems[0]->exportFileType);
     $this->assertEquals('accounts', $exportItems[0]->exportFileName);
     $this->assertTrue($fileModel instanceof ExportFileModel);
     for ($i = 1; $i <= $numberOfRecords; $i++) {
         $this->assertContains($randomData['names'][$i], $fileModel->fileContent->content);
     }
 }
 public function testSubscribeContactsForContactType()
 {
     $type = 'contact';
     $account = AccountTestHelper::createAccountByNameForOwner('superAccount3', $this->user);
     $contact = ContactTestHelper::createContactWithAccountByNameForOwner('superContact6', $this->user, $account);
     $contactId = $contact->id;
     $marketingList = RandomDataUtil::getRandomValueFromArray(MarketingList::getAll());
     $marketingListId = $marketingList->id;
     $this->setGetArray(array('marketingListId' => $marketingListId, 'id' => $contact->id, 'type' => $type));
     $content = $this->runControllerWithNoExceptionsAndGetContent('marketingLists/defaultPortlet/subscribeContacts');
     $contentArray = CJSON::decode($content);
     $this->assertNotEmpty($contentArray);
     $this->assertArrayHasKey('type', $contentArray);
     $this->assertArrayHasKey('message', $contentArray);
     $this->assertEquals('1 subscribed.', $contentArray['message']);
     $this->assertEquals('message', $contentArray['type']);
     $content = $this->runControllerWithNoExceptionsAndGetContent('marketingLists/defaultPortlet/subscribeContacts');
     $contentArray = CJSON::decode($content);
     $this->assertNotEmpty($contentArray);
     $this->assertArrayHasKey('type', $contentArray);
     $this->assertArrayHasKey('message', $contentArray);
     $this->assertEquals('0 subscribed. 1 skipped, already in the list.', $contentArray['message']);
     $this->assertEquals('message', $contentArray['type']);
 }