first unit tests for Bookmark2Tag::getPopularTags

This commit is contained in:
Christian Weiske 2011-03-23 08:23:36 +01:00
parent f67250a720
commit d4ccb1d3d3
2 changed files with 85 additions and 2 deletions

View file

@ -204,6 +204,88 @@ class Bookmark2TagTest extends TestBase
}
}
}
/**
* Create a bookmark
*
* @param integer $user User ID the bookmark shall belong
* @param array $tags Array of tags to attach. If "null" is given,
* it will automatically be "unittest"
* @param string $date strtotime-compatible string
* @param string $title Bookmark title
*
* @return integer ID of bookmark
*/
protected function addTagBookmark($user, $tags, $date = null, $title = null)
{
return $this->addBookmark(
$user, null, 0, $tags, $title, $date
);
}
/**
* Fetch the most popular tags in descending order
*/
public function testGetPopularTagsOrder()
{
$user = $this->addUser();
$this->addTagBookmark($user, array('one', 'two'));
$this->addTagBookmark($user, array('one', 'three'));
$this->addTagBookmark($user, array('one', 'two'));
$arTags = $this->b2ts->getPopularTags();
$this->assertInternalType('array', $arTags);
$this->assertEquals(3, count($arTags));
$this->assertInternalType('array', $arTags[0]);
$this->assertEquals(
array(
array('tag' => 'one', 'bCount' => '3'),
array('tag' => 'two', 'bCount' => '2'),
array('tag' => 'three', 'bCount' => '1')
),
$arTags
);
}
public function testGetPopularTagsLimit()
{
$user = $this->addUser();
$this->addTagBookmark($user, array('one', 'two'));
$this->addTagBookmark($user, array('one', 'three'));
$this->addTagBookmark($user, array('one', 'two'));
$arTags = $this->b2ts->getPopularTags();
$this->assertInternalType('array', $arTags);
$this->assertEquals(3, count($arTags));
$arTags = $this->b2ts->getPopularTags(null, 2);
$this->assertInternalType('array', $arTags);
$this->assertEquals(2, count($arTags));
$this->assertEquals(
array(
array('tag' => 'one', 'bCount' => '3'),
array('tag' => 'two', 'bCount' => '2'),
),
$arTags
);
$arTags = $this->b2ts->getPopularTags(null, 1);
$this->assertInternalType('array', $arTags);
$this->assertEquals(1, count($arTags));
$this->assertEquals(
array(
array('tag' => 'one', 'bCount' => '3'),
),
$arTags
);
}
}
if (PHPUnit_MAIN_METHOD == 'Bookmark2TagTest::main') {

View file

@ -31,6 +31,7 @@ class TestBase extends PHPUnit_Framework_TestCase
* @param array $tags Array of tags to attach. If "null" is given,
* it will automatically be "unittest"
* @param string $title Bookmark title
* @param string $date strtotime-compatible string
*
* @return integer ID of bookmark
*
@ -38,7 +39,7 @@ class TestBase extends PHPUnit_Framework_TestCase
*/
protected function addBookmark(
$user = null, $address = null, $status = 0,
$tags = null, $title = null
$tags = null, $title = null, $date = null
) {
if ($user === null) {
$user = $this->addUser();
@ -64,7 +65,7 @@ class TestBase extends PHPUnit_Framework_TestCase
null,
$status,
$tags,
null, null, false, false,
null, $date, false, false,
$user
);
return $bid;