public function testAlternateText()
 {
     TimeHelper::setTime(3);
     $builders = array();
     $builders[] = FixtureBuilder::build('users', array('user_id' => '13', 'user_name' => 'ev', 'full_name' => 'Ev Williams', 'avatar' => 'avatar.jpg', 'is_protected' => 0, 'follower_count' => 70, 'network' => 'twitter'));
     $builders[] = FixtureBuilder::build('groups', array('group_id' => 14, 'network' => 'twitter', 'is_active' => 1, 'first_seen' => '-2d', 'group_name' => '@listmaker/list2'));
     $builders[] = FixtureBuilder::build('group_members', array('group_id' => 14, 'member_user_id' => '13', 'network' => 'twitter', 'is_active' => 1, 'first_seen' => '-2d'));
     $instance = new Instance();
     $instance->id = 1;
     $instance->network_user_id = '13';
     $instance->network = 'twitter';
     $instance->network_username = '******';
     $insight_plugin = new ListMembershipInsight();
     $insight_plugin->generateInsight($instance, null, array(), 3);
     $insight_dao = DAOFactory::getDAO('InsightDAO');
     $result = $insight_dao->getInsight('new_group_memberships', 1, date('Y-m-d'));
     $this->assertNotNull($result);
     $this->assertEqual("A new list for @ev's collection", $result->headline);
     $this->assertEqual('@ev got added to a new list, <a href="http://twitter.com/listmaker/list2">list2</a>.', $result->text);
     $this->debug($this->getRenderedInsightInHTML($result));
     $this->debug($this->getRenderedInsightInEmail($result));
     $builders[] = FixtureBuilder::build('groups', array('group_id' => 13, 'network' => 'twitter', 'is_active' => 1, 'first_seen' => '-3d', 'group_name' => '@listmaker/list1'));
     $builders[] = FixtureBuilder::build('group_members', array('group_id' => 13, 'member_user_id' => '13', 'network' => 'twitter', 'is_active' => 1, 'first_seen' => '-3d'));
     $deleted = $insight_dao->deleteInsightsBySlug('new_group_memberships', 1);
     $insight_plugin->generateInsight($instance, null, array(), 3);
     $result = $insight_dao->getInsight('new_group_memberships', 1, date('Y-m-d'));
     $this->assertNotNull($result);
     $this->assertEqual("2 new lists for @ev's collection", $result->headline);
     $this->assertEqual('@ev is on 2 new lists: <a href="http://twitter.com/listmaker/list2">list2</a> ' . 'and <a href="http://twitter.com/listmaker/list1">list1</a>.', $result->text);
     $this->debug($this->getRenderedInsightInHTML($result));
     $this->debug($this->getRenderedInsightInEmail($result));
 }
 public function test1NewListMembershipWithHistory()
 {
     // Assert that insight doesn't exist
     $insight_dao = new InsightMySQLDAO();
     $result = $insight_dao->getInsight('new_group_memberships', 1, date('Y-m-d'));
     $this->assertNull($result);
     $builders = self::buildData($total_lists = 1, $build_history = true, $history_ceiling = 5);
     $instance = new Instance();
     $instance->id = 1;
     $instance->network_user_id = '13';
     $instance->network = 'twitter';
     $instance->network_username = '******';
     $stylestats_insight_plugin = new ListMembershipInsight();
     $stylestats_insight_plugin->generateInsight($instance, array(), 3);
     // Assert that insight got generated
     $insight_dao = new InsightMySQLDAO();
     $result = $insight_dao->getInsight('new_group_memberships', 1, date('Y-m-d'));
     $this->assertNotNull($result);
     $this->assertEqual($result->slug, 'new_group_memberships');
     $this->assertEqual($result->headline, 'Made the list:');
     $this->assertEqual($result->filename, 'listmembership');
     $this->assertPattern('/\\@ev is on a new list,/', $result->text);
     $this->assertPattern('/bringing the total to \\<strong\\>6 lists\\<\\/strong\\>./', $result->text);
 }
 public function testMoreThan10NewListMembershipNoHistory()
 {
     // Assert that insight doesn't exist
     $insight_dao = new InsightMySQLDAO();
     $result = $insight_dao->getInsight('new_group_memberships', 1, date('Y-m-d'));
     $this->assertNull($result);
     $builders = self::buildData($total_lists = 26);
     $instance = new Instance();
     $instance->id = 1;
     $instance->network_user_id = '13';
     $instance->network = 'twitter';
     $instance->network_username = '******';
     $stylestats_insight_plugin = new ListMembershipInsight();
     $stylestats_insight_plugin->generateInsight($instance, array(), 3);
     // Assert that insight got generated
     $insight_dao = new InsightMySQLDAO();
     $result = $insight_dao->getInsight('new_group_memberships', 1, date('Y-m-d'));
     $this->assertNotNull($result);
     $this->assertEqual($result->slug, 'new_group_memberships');
     $this->assertEqual($result->prefix, 'Made the list:');
     $this->assertEqual($result->filename, 'listmembership');
     $this->assertPattern('/\\@ev is on 26 new lists:/', $result->text);
     $this->assertPattern('/and 16 more/', $result->text);
 }