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