aboutsummaryrefslogtreecommitdiff
path: root/tests/Bookmark2TagTest.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2010-08-12 20:49:35 +0200
committerChristian Weiske <cweiske@cweiske.de>2010-08-12 20:49:35 +0200
commit0a8dadf87e660e9bf205581f12f7af87bfabf6ca (patch)
treea1218f869401a1ffff764a58c28a0be674ba5362 /tests/Bookmark2TagTest.php
parentb25290cef48251a31cb0f693a53677b566c1b1a4 (diff)
parent31570df64ce6543de407e7b9d751ba9033d930de (diff)
downloadsemanticscuttle-0a8dadf87e660e9bf205581f12f7af87bfabf6ca.tar.gz
semanticscuttle-0a8dadf87e660e9bf205581f12f7af87bfabf6ca.tar.bz2
Merge branch 'master' into pearpkg
Diffstat (limited to 'tests/Bookmark2TagTest.php')
-rw-r--r--tests/Bookmark2TagTest.php213
1 files changed, 213 insertions, 0 deletions
diff --git a/tests/Bookmark2TagTest.php b/tests/Bookmark2TagTest.php
new file mode 100644
index 0000000..14b71cc
--- /dev/null
+++ b/tests/Bookmark2TagTest.php
@@ -0,0 +1,213 @@
+<?php
+/**
+ * SemanticScuttle - your social bookmark manager.
+ *
+ * PHP version 5.
+ *
+ * @category Bookmarking
+ * @package SemanticScuttle
+ * @author Benjamin Huynh-Kim-Bang <mensonge@users.sourceforge.net>
+ * @author Christian Weiske <cweiske@cweiske.de>
+ * @author Eric Dane <ericdane@users.sourceforge.net>
+ * @license GPL http://www.gnu.org/licenses/gpl.html
+ * @link http://sourceforge.net/projects/semanticscuttle
+ */
+
+require_once 'prepare.php';
+
+if (!defined('PHPUnit_MAIN_METHOD')) {
+ define('PHPUnit_MAIN_METHOD', 'Bookmark2TagTest::main');
+}
+
+/**
+ * Unit tests for the SemanticScuttle bookmark-tag combination service.
+ *
+ * @category Bookmarking
+ * @package SemanticScuttle
+ * @author Benjamin Huynh-Kim-Bang <mensonge@users.sourceforge.net>
+ * @author Christian Weiske <cweiske@cweiske.de>
+ * @author Eric Dane <ericdane@users.sourceforge.net>
+ * @license GPL http://www.gnu.org/licenses/gpl.html
+ * @link http://sourceforge.net/projects/semanticscuttle
+ */
+class Bookmark2TagTest extends TestBase
+{
+ protected $us;
+ protected $bs;
+ protected $ts;
+ protected $tts;
+
+
+
+ /**
+ * Used to run this test class standalone
+ *
+ * @return void
+ */
+ public static function main()
+ {
+ require_once 'PHPUnit/TextUI/TestRunner.php';
+ PHPUnit_TextUI_TestRunner::run(
+ new PHPUnit_Framework_TestSuite(__CLASS__)
+ );
+ }
+
+
+
+ protected function setUp()
+ {
+ $this->us = SemanticScuttle_Service_Factory::get('User');
+ $this->bs = SemanticScuttle_Service_Factory::get('Bookmark');
+ $this->bs->deleteAll();
+ $this->b2ts= SemanticScuttle_Service_Factory::get('Bookmark2Tag');
+ $this->b2ts->deleteAll();
+ $this->tts = SemanticScuttle_Service_Factory::get('Tag2Tag');
+ $this->tts->deleteAll();
+ $this->tsts = SemanticScuttle_Service_Factory::get('TagStat');
+ $this->tsts->deleteAll();
+ $this->vs = SemanticScuttle_Service_Factory::get('Vote');
+ $this->vs->deleteAll();
+ }
+
+
+
+ /**
+ * Test getTagsForBookmark() when the bookmark has no tags
+ *
+ * @return void
+ */
+ public function testGetTagsForBookmarkNone()
+ {
+ $this->addBookmark(null, null, 0, array('forz', 'barz'));
+
+ $bid = $this->addBookmark(null, null, 0, array());
+ $this->assertEquals(
+ array(),
+ $this->b2ts->getTagsForBookmark($bid)
+ );
+ }
+
+
+
+ /**
+ * Test getTagsForBookmark() when the bookmark has one tag
+ *
+ * @return void
+ */
+ public function testGetTagsForBookmarkOne()
+ {
+ $this->addBookmark(null, null, 0, array('forz', 'barz'));
+
+ $bid = $this->addBookmark(null, null, 0, array());
+ $this->b2ts->attachTags($bid, array('foo'));
+ $this->assertEquals(
+ array('foo'),
+ $this->b2ts->getTagsForBookmark($bid)
+ );
+ }
+
+
+
+ /**
+ * Test getTagsForBookmark() when the bookmark has three tags
+ *
+ * @return void
+ */
+ public function testGetTagsForBookmarkThree()
+ {
+ $this->addBookmark(null, null, 0, array('forz', 'barz'));
+
+ $bid = $this->addBookmark(null, null, 0, array());
+ $this->b2ts->attachTags($bid, array('foo', 'bar', 'fuu'));
+
+ $tags = $this->b2ts->getTagsForBookmark($bid);
+ $this->assertType('array', $tags);
+ $this->assertContains('foo', $tags);
+ $this->assertContains('bar', $tags);
+ $this->assertContains('fuu', $tags);
+ }
+
+
+
+ /**
+ * Test getTagsForBookmarks() when no bookmarks have tags.
+ *
+ * @return void
+ */
+ public function testGetTagsForBookmarksNone()
+ {
+ $bid1 = $this->addBookmark(null, null, 0, array());
+ $bid2 = $this->addBookmark(null, null, 0, array());
+
+ $alltags = $this->b2ts->getTagsForBookmarks(
+ array($bid1, $bid2)
+ );
+ $this->assertType('array', $alltags);
+ $this->assertEquals(2, count($alltags));
+ $this->assertType('array', $alltags[$bid1]);
+ $this->assertType('array', $alltags[$bid2]);
+ $this->assertEquals(0, count($alltags[$bid1]));
+ $this->assertEquals(0, count($alltags[$bid2]));
+ }
+
+
+
+ /**
+ * Test getTagsForBookmarks() when most bookmarks have tags.
+ *
+ * @return void
+ */
+ public function testGetTagsForBookmarksMost()
+ {
+ $bid1 = $this->addBookmark(null, null, 0, array());
+ $this->b2ts->attachTags($bid1, array('foo', 'bar', 'fuu'));
+
+ $bid2 = $this->addBookmark(null, null, 0, array());
+ $this->b2ts->attachTags($bid2, array('foo', 'bar2', 'fuu2'));
+
+ $bid3 = $this->addBookmark(null, null, 0, array());
+ $this->b2ts->attachTags($bid3, array('foo', 'bar2', 'fuu3'));
+
+ $bid4 = $this->addBookmark(null, null, 0, array());
+ //no tags
+
+ //bookmark that does not get queried
+ //http://sourceforge.net/projects/semanticscuttle/forums/forum/759510/topic/3752670
+ $bid5 = $this->addBookmark(null, null, 0, array());
+ $this->b2ts->attachTags($bid5, array('foo', 'bar2', 'fuu5'));
+
+
+ $alltags = $this->b2ts->getTagsForBookmarks(
+ array($bid1, $bid2, $bid3, $bid4)
+ );
+ $this->assertType('array', $alltags);
+ foreach ($alltags as $bid => $btags) {
+ $this->assertType('array', $btags);
+ if ($bid == $bid1) {
+ $this->assertEquals(3, count($btags));
+ $this->assertContains('foo', $btags);
+ $this->assertContains('bar', $btags);
+ $this->assertContains('fuu', $btags);
+ } else if ($bid == $bid2) {
+ $this->assertEquals(3, count($btags));
+ $this->assertContains('foo', $btags);
+ $this->assertContains('bar2', $btags);
+ $this->assertContains('fuu2', $btags);
+ } else if ($bid == $bid3) {
+ $this->assertEquals(3, count($btags));
+ $this->assertContains('foo', $btags);
+ $this->assertContains('bar2', $btags);
+ $this->assertContains('fuu3', $btags);
+ } else if ($bid == $bid4) {
+ $this->assertEquals(0, count($btags));
+ } else {
+ $this->assertTrue(false, 'Unknown bookmark id');
+ }
+ }
+ }
+}
+
+if (PHPUnit_MAIN_METHOD == 'Bookmark2TagTest::main') {
+ Bookmark2TagTest::main();
+}
+?> \ No newline at end of file