-
Notifications
You must be signed in to change notification settings - Fork 676
/
TestOfHashtagMySQLDAO.php
104 lines (95 loc) · 3.86 KB
/
TestOfHashtagMySQLDAO.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
/**
*
* ThinkUp/tests/TestOfHashtagMySQLDAO.php
*
* Copyright (c) 2011-2013 Amy Unruh
*
* LICENSE:
*
* This file is part of ThinkUp (http://thinkupapp.com).
*
* ThinkUp is free software: you can redistribute it and/or modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any
* later version.
*
* ThinkUp is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with ThinkUp. If not, see
* <http://www.gnu.org/licenses/>.
*
* @license http://www.gnu.org/licenses/gpl.html
* @copyright 2011-2013 Amy Unruh
* @author Amy Unruh
*/
require_once dirname(__FILE__).'/init.tests.php';
require_once THINKUP_WEBAPP_PATH.'_lib/extlib/simpletest/autorun.php';
require_once THINKUP_WEBAPP_PATH.'config.inc.php';
class TestOfHashtagMySQLDAO extends ThinkUpUnitTestCase {
/**
*
* @var HashtagMySQLDAO
*/
protected $dao;
public function setUp() {
parent::setUp();
$this->builders = self::buildData();
$this->dao = new HashtagMySQLDAO();
}
protected function buildData() {
//random test data to check basic retrieval
for ($i = 1; $i < 3; $i++) {
$ht = 'hashtag' . ($i +10);
$builders[] = FixtureBuilder::build('hashtags',
array('hashtag' => $ht, 'network'=>'twitter', 'count_cache' => $i + 3));
$builders[] = FixtureBuilder::build('hashtags_posts',
array('post_id' => 1000 + $i,'hashtag_id' => $i, 'network' => 'twitter'));
$builders[] = FixtureBuilder::build('hashtags_posts',
array('post_id' => 1000 + $i, 'hashtag_id' => $i+100, 'network' => 'twitter'));
}
return $builders;
}
public function tearDown() {
$this->builders = null;
parent::tearDown();
}
/**
* The contents of the mentions tables are not actively used by the app at the moment. When they are, more tests
* will presumably need to be added.
*/
public function testGetHashtagInfo() {
$res = $this->dao->getHashtagInfoForTag('hashtag11');
$this->assertEqual($res['count_cache'], 4);
}
public function testGetHashtagPostData() {
$res = $this->dao->getHashtagsForPost(1001);
$this->assertEqual(sizeof($res), 2);
$this->assertEqual($res[1]['hashtag_id'], 101);
}
public function testInsertHashtag() {
$ht = 'bob';
$this->dao->insertHashtag($ht, '39089424330978176', 'twitter');
$res = $this->dao->getHashtagsForPost('39089424330978176');
$this->assertEqual(sizeof($res), 1);
$this->assertEqual($res[0]['post_id'],'39089424330978176');
$this->assertEqual($res[0]['hashtag_id'],3); //setup has generated 2 prev hashtags
}
public function testInsertHashtags() {
$ht = array('bob', 'dole');
$this->dao->insertHashtags($ht, '39089424330978176', 'twitter');
$this->dao->insertHashtags($ht, '39089424330978177', 'twitter');
$res1 = $this->dao->getHashtagsForPost('39089424330978176');
$res2 = $this->dao->getHashtagsForPost('39089424330978177');
$this->assertEqual(sizeof($res1), 2);
$this->assertEqual(sizeof($res2), 2);
$this->assertEqual($res2[1]['hashtag_id'],4);
$res3 = $this->dao->getHashtagInfoForTag('dole');
$this->assertEqual($res3['count_cache'], 2);
$res4 = $this->dao->getHashtagsForPostHID(3);
$this->assertEqual(sizeof($res4), 2);
$this->assertEqual($res4[0]['post_id'], '39089424330978176');
}
//See TestOfPostMySQLDAO for more HashtagMySQLDAO tests
}