示例#1
0
 public function testWeeklyBestsInsightWithRepliesAndFavorites()
 {
     // Get data ready that insight requires
     $instance = new Instance();
     $instance->id = 10;
     $instance->network_username = '******';
     $instance->network = 'twitter';
     $insight_builder = FixtureBuilder::build('insights', array('id' => 34, 'instance_id' => 10, 'slug' => 'PostMySQLDAO::getHotPosts', 'date' => '-1d'));
     $posts = array();
     $posts[] = new Post(array('reply_count_cache' => 4, 'retweet_count_cache' => 0, 'favlike_count_cache' => 5, 'pub_date' => date('Y-m-d H:i:s', strtotime('-1 day'))));
     // popularity_index = 30
     $insight_plugin = new WeeklyBestsInsight();
     $insight_plugin->generateInsight($instance, $posts, 3);
     // Assert that insight got inserted
     $insight_dao = new InsightMySQLDAO();
     $today = date('Y-m-d');
     $result = $insight_dao->getInsight('weekly_best', 10, $today);
     $this->debug(Utils::varDumpToString($result));
     $this->assertNotNull($result);
     $this->assertIsA($result, "Insight");
     $this->assertPattern('/\\@testeriffic\'s most popular tweet from last week got /', $result->text);
     $this->assertPattern('/4 replies/', $result->text);
     $this->assertPattern('/5 favorites/', $result->text);
     $this->assertNoPattern('/,/', $result->text);
     $this->assertPattern('/and/', $result->text);
 }
 public function testWeeklyBestsInsightWithRepliesAndFavorites()
 {
     // Get data ready that insight requires
     $instance = new Instance();
     $instance->id = 10;
     $instance->network_username = '******';
     $instance->network = 'twitter';
     $builders = self::setUpPublicInsight($instance);
     $posts = array();
     $posts[] = new Post(array('reply_count_cache' => 4, 'retweet_count_cache' => 0, 'favlike_count_cache' => 5, 'post_text' => 'This is a really good post', 'author_username' => $instance->network_username, 'author_user_id' => 'abc', 'author_avatar' => 'http://example.com/example.jpg', 'network' => $instance->network, 'pub_date' => date('Y-m-d H:i:s', strtotime('-1 day'))));
     // popularity_index = 30
     TimeHelper::setTime(1);
     $insight_plugin = new WeeklyBestsInsight();
     $insight_plugin->generateInsight($instance, null, $posts, 3);
     // Assert that insight got inserted
     $insight_dao = new InsightMySQLDAO();
     $today = date('Y-m-d');
     $result = $insight_dao->getInsight('weekly_best', 10, $today);
     $this->debug(Utils::varDumpToString($result));
     $this->assertNotNull($result);
     $this->assertIsA($result, "Insight");
     $this->assertPattern('/\\@testeriffic\'s most popular tweet last week/', $result->headline);
     $this->assertPattern('/4 replies/', $result->text);
     $this->assertPattern('/5 favorites/', $result->text);
     $this->assertPattern('/and/', $result->text);
     /**
      * Use this code to output the individual insight's fully-rendered email HTML to file.
      * Then, open the file in your browser to view.
      *
      * $ TEST_DEBUG=1 php webapp/plugins/insightsgenerator/tests/TestOfHelloThinkUpInsight.php
      * -t testHelloThinkUpInsight > webapp/insight_email.html
      */
     $result->related_data = unserialize($result->related_data);
     $email_insight = $this->getRenderedInsightInEmail($result);
     //Uncomment this out to see the email view of insight
     $this->debug($email_insight);
     $this->debug($this->getRenderedInsightInHTML($result));
     $this->assertPattern('/This is a really good post/', $email_insight);
 }