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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
<?php
require_once('PHPUnit/Framework.php');
require_once('src/Bridge.php');
class BridgeTest extends PHPUnit_Framework_TestCase {
protected $db;
protected function setUp() {
$this->db = new PDO('mysql:host=localhost;dbname=test');
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//
// Build posts table
//
$this->db->exec('DROP TABLE IF EXISTS posts');
$this->db->exec(
'CREATE TABLE posts (' .
'post_id MEDIUMINT UNSIGNED NOT NULL, ' .
'message_id VARCHAR(255) NOT NULL, ' .
'in_reply_to VARCHAR(255), ' .
'refs BLOB, ' .
'PRIMARY KEY (post_id), ' .
'UNIQUE KEY (message_id))'
);
$this->db->exec(
'INSERT INTO posts (post_id, message_id, in_reply_to, refs) ' .
'VALUES (' .
'1, ' .
'"<20100302094228.33F0310091@charybdis.ellipsis.cx>", ' .
'"<1267473003.m2f.17543@www.vassalengine.org>", ' .
'"<1267171317.m2f.17507@www.vassalengine.org> <1267473003.m2f.17543@www.vassalengine.org>"' .
')'
);
//
// Build forums table
//
$this->db->exec('DROP TABLE IF EXISTS forums');
$this->db->exec(
'CREATE TABLE forums (' .
'list_name VARCHAR(255) NOT NULL, ' .
'forum_id MEDIUMINT UNSIGNED NOT NULL, ' .
'PRIMARY KEY (list_name), ' .
'INDEX (forum_id))'
);
$this->db->exec(
'INSERT INTO forums (list_name, forum_id) ' .
'VALUES (' .
'"messages@forums.vassalengine.org", 2' .
')'
);
}
protected function tearDown() {
$this->db = null;
}
/**
* @dataProvider providerGetPostId
*/
public function testGetPostId($message_id, $expected, $ex) {
if ($ex) $this->setExpectedException($ex);
$bridge = new Bridge($this->db);
$this->assertEquals($expected, $bridge->getPostId($message_id));
}
public function providerGetPostId() {
return array(
array('bogus', null, 'PHPUnit_Framework_Error'),
array('<20100302094228.33F0310091@charybdis.ellipsis.cx>', 1, null),
);
}
/**
* @dataProvider providerGetMessageId
*/
public function testGetMessageId($post_id, $expected, $ex) {
if ($ex) $this->setExpectedException($ex);
$bridge = new Bridge($this->db);
$this->assertEquals($expected, $bridge->getMessageId($post_id));
}
public function providerGetMessageId() {
return array(
array('bogus', null, 'PHPUnit_Framework_Error'),
array(1, '<20100302094228.33F0310091@charybdis.ellipsis.cx>', null),
);
}
/**
* @dataProvider providerRegisterMessage
*/
public function testRegisterMessage($msg, $expected, $ex) {
$this->markTestIncomplete();
# $bridge = new Bridge($this->db);
# if ($ex) $this->setExpectedException($ex);
# $this->assertEquals($expected, $bridge->registerMessage($msg));
}
public function providerRegisterMessage() {
return array(
);
}
/**
* @dataProvider providerGetDefaultForumId
*/
public function testGetDefaultForumId($list, $expected, $ex) {
if ($ex) $this->setExpectedException($ex);
$bridge = new Bridge($this->db);
$this->assertEquals($expected, $bridge->getDefaultForumId($list));
}
public function providerGetDefaultForumId() {
return array(
array('bogus', null, 'PHPUnit_Framework_Error'),
array('messages@forums.vassalengine.org', 2, null),
);
}
}
?>
|