public function testGetChartData() { $contact = ContactTestHelper::createContactByNameForOwner('contact01', Yii::app()->user->userModel); $this->addCampaignItem($contact, '2013-04-01', array(CampaignItemActivity::TYPE_CLICK => 1, CampaignItemActivity::TYPE_BOUNCE => 0, CampaignItemActivity::TYPE_OPEN => 1, CampaignItemActivity::TYPE_SKIP => 0, CampaignItemActivity::TYPE_UNSUBSCRIBE => 0)); $campaignChartDataProvider = new MarketingListPerformanceChartDataProvider(); $campaignChartDataProvider->setBeginDate('2013-04-01'); $campaignChartDataProvider->setEndDate('2013-04-25'); $campaignChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_DAY); $campaignChartDataProvider->setCampaign($this->campaign); $marketingListChartDataProvider = new MarketingListPerformanceChartDataProvider(); $marketingListChartDataProvider->setBeginDate('2013-04-01'); $marketingListChartDataProvider->setEndDate('2013-04-25'); $marketingListChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_DAY); $marketingListChartDataProvider->setMarketingList($this->marketingList); $combinedChartDataProvider = new MarketingListPerformanceChartDataProvider(); $combinedChartDataProvider->setBeginDate('2013-04-01'); $combinedChartDataProvider->setEndDate('2013-04-25'); $combinedChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_DAY); $campaignChartData = $campaignChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100; $expectedArray['uniqueOpenRate'] = 100; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Apr 1'; $this->assertEquals($expectedArray, $campaignChartData[0]); $this->assertChartDataForNormalUser($campaignChartDataProvider); $marketingListChartData = $marketingListChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 0; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Apr 1'; $this->assertEquals($expectedArray, $marketingListChartData[0]); $this->assertChartDataForNormalUser($campaignChartDataProvider); $combinedChartData = $combinedChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100; $expectedArray['uniqueOpenRate'] = 100; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Apr 1'; $this->assertEquals($expectedArray, $combinedChartData[0]); $this->assertChartDataForNormalUser($campaignChartDataProvider); $this->addAutoresponderItem($contact, '2013-04-01', array(CampaignItemActivity::TYPE_CLICK => 1, CampaignItemActivity::TYPE_BOUNCE => 0, CampaignItemActivity::TYPE_OPEN => 0, CampaignItemActivity::TYPE_SKIP => 0, CampaignItemActivity::TYPE_UNSUBSCRIBE => 0)); $campaignChartData = $campaignChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100; $expectedArray['uniqueOpenRate'] = 100; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Apr 1'; $this->assertEquals($expectedArray, $campaignChartData[0]); $this->assertChartDataForNormalUser($marketingListChartDataProvider); $marketingListChartData = $marketingListChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100.0; $expectedArray['uniqueOpenRate'] = 0.0; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Apr 1'; $this->assertEquals($expectedArray, $marketingListChartData[0]); $this->assertChartDataForNormalUser($marketingListChartDataProvider); $combinedChartData = $combinedChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100.0; $expectedArray['uniqueOpenRate'] = 50.0; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Apr 1'; $this->assertEquals($expectedArray, $combinedChartData[0]); $this->assertChartDataForNormalUser($marketingListChartDataProvider); $contact = ContactTestHelper::createContactByNameForOwner('contact02', Yii::app()->user->userModel); $this->addCampaignItem($contact, '2013-04-25', array(CampaignItemActivity::TYPE_CLICK => 0, CampaignItemActivity::TYPE_BOUNCE => 0, CampaignItemActivity::TYPE_OPEN => 0, CampaignItemActivity::TYPE_SKIP => 0, CampaignItemActivity::TYPE_UNSUBSCRIBE => 0)); $campaignChartData = $campaignChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 0; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 25'; $expectedArray['dateBalloonLabel'] = 'Apr 25'; $this->assertEquals($expectedArray, $campaignChartData[24]); $this->assertChartDataForNormalUser($campaignChartDataProvider, 24); $marketingListChartData = $marketingListChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 0; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 25'; $expectedArray['dateBalloonLabel'] = 'Apr 25'; $this->assertEquals($expectedArray, $marketingListChartData[24]); $this->assertChartDataForNormalUser($campaignChartDataProvider, 24); $combinedChartData = $combinedChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 0; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 25'; $expectedArray['dateBalloonLabel'] = 'Apr 25'; $this->assertEquals($expectedArray, $combinedChartData[24]); $this->assertChartDataForNormalUser($campaignChartDataProvider, 24); $campaignChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_WEEK); $marketingListChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_WEEK); $combinedChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_WEEK); $campaignChartData = $campaignChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100; $expectedArray['uniqueOpenRate'] = 100; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Week of Apr 1'; $this->assertEquals($expectedArray, $campaignChartData[0]); $this->assertChartDataForNormalUser($campaignChartDataProvider); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 0; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 22'; $expectedArray['dateBalloonLabel'] = 'Week of Apr 22'; $this->assertEquals($expectedArray, $campaignChartData[3]); $this->assertChartDataForNormalUser($campaignChartDataProvider, 3); $marketingListChartData = $marketingListChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Week of Apr 1'; $this->assertEquals($expectedArray, $marketingListChartData[0]); $this->assertChartDataForNormalUser($marketingListChartDataProvider); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 0; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 22'; $expectedArray['dateBalloonLabel'] = 'Week of Apr 22'; $this->assertEquals($expectedArray, $marketingListChartData[3]); $this->assertChartDataForNormalUser($marketingListChartDataProvider, 3); $combinedChartData = $combinedChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100; $expectedArray['uniqueOpenRate'] = 50; $expectedArray['displayLabel'] = 'Apr 1'; $expectedArray['dateBalloonLabel'] = 'Week of Apr 1'; $this->assertEquals($expectedArray, $combinedChartData[0]); $this->assertChartDataForNormalUser($combinedChartDataProvider); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 0; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr 22'; $expectedArray['dateBalloonLabel'] = 'Week of Apr 22'; $this->assertEquals($expectedArray, $combinedChartData[3]); $this->assertChartDataForNormalUser($combinedChartDataProvider, 3); $campaignChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_MONTH); $marketingListChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_MONTH); $combinedChartDataProvider->setGroupBy(MarketingOverallMetricsForm::GROUPING_TYPE_MONTH); $campaignChartData = $campaignChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 50; $expectedArray['uniqueOpenRate'] = 50; $expectedArray['displayLabel'] = 'Apr'; $expectedArray['dateBalloonLabel'] = 'Apr'; $this->assertEquals($expectedArray, $campaignChartData[0]); $this->assertChartDataForNormalUser($campaignChartDataProvider); $marketingListChartData = $marketingListChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 100; $expectedArray['uniqueOpenRate'] = 0; $expectedArray['displayLabel'] = 'Apr'; $expectedArray['dateBalloonLabel'] = 'Apr'; $this->assertEquals($expectedArray, $marketingListChartData[0]); $this->assertChartDataForNormalUser($marketingListChartDataProvider); $combinedChartData = $combinedChartDataProvider->getChartData(); $expectedArray = array(); $expectedArray['uniqueClickThroughRate'] = 66.67; $expectedArray['uniqueOpenRate'] = 33.33; $expectedArray['displayLabel'] = 'Apr'; $expectedArray['dateBalloonLabel'] = 'Apr'; $this->assertEquals($expectedArray, $combinedChartData[0]); $this->assertChartDataForNormalUser($combinedChartDataProvider); }