diff options
-rw-r--r-- | src/Bridge.php | 16 | ||||
-rw-r--r-- | test/BridgeTest.php | 41 |
2 files changed, 54 insertions, 3 deletions
diff --git a/src/Bridge.php b/src/Bridge.php index 54f9880..9d59564 100644 --- a/src/Bridge.php +++ b/src/Bridge.php @@ -84,6 +84,22 @@ class Bridge { return $count == 1; } + public function registerMessage($postId, $messageId, + $inReplyTo, $references) { + throw_if_null($postId); + throw_if_null($messageId); + + $sql = 'INSERT IGNORE INTO posts ' . + '(post_id, message_id, in_reply_to, refs) ' . + 'VALUES (' . $postId . ', ' + . $this->db->quote($messageId) . ', ' + . $this->quote($inReplyTo) . ', ' + . $this->quote($references) . ')'; + + $count = $this->db->exec($sql); + return $count == 1; + } + public function unregisterMessage($messageId) { throw_if_null($messageId); diff --git a/test/BridgeTest.php b/test/BridgeTest.php index c0c7da1..28ef8d5 100644 --- a/test/BridgeTest.php +++ b/test/BridgeTest.php @@ -96,9 +96,9 @@ class BridgeTest extends PHPUnit_Framework_TestCase { } /** - * @dataProvider providerRegisterMessage + * @dataProvider providerRegisterMessage3 */ - public function testRegisterMessage($messageId, $inReplyTo, $refs, + public function testRegisterMessage3($messageId, $inReplyTo, $refs, $expected, $ex) { if ($ex) $this->setExpectedException($ex); $bridge = new Bridge($this->db); @@ -108,7 +108,7 @@ class BridgeTest extends PHPUnit_Framework_TestCase { ); } - public function providerRegisterMessage() { + public function providerRegisterMessage3() { return array( array(null, null, null, null, 'Exception'), array( @@ -129,6 +129,41 @@ class BridgeTest extends PHPUnit_Framework_TestCase { } /** + * @dataProvider providerRegisterMessage4 + */ + public function testRegisterMessage4($postId, $messageId, $inReplyTo, $refs, + $expected, $ex) { + if ($ex) $this->setExpectedException($ex); + $bridge = new Bridge($this->db); + $this->assertEquals( + $expected, + $bridge->registerMessage($postId, $messageId, $inReplyTo, $refs) + ); + } + + public function providerRegisterMessage4() { + return array( + array(null, null, null, null, 'Exception'), + array( + 2, + '<20100302094228.33F0310091@charybdis.ellipsis.cx>', + null, + null, + false, + null + ), + array( + 2, + '<10100302094228.33F0310091@charybdis.ellipsis.cx>', + null, + null, + true, + null + ) + ); + } + + /** * @dataProvider providerUnregisterMessage */ public function testUnregisterMessage($messageId, $ex) { |