diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2018-04-22 20:47:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-22 20:47:30 +0200 |
commit | 0ed6f9c2dade2bede88edc53d98c6f38dda928d6 (patch) | |
tree | 3a26392e97b21039958e33b770a2a6db21351840 /tests/lib | |
parent | 9f4e928c0f759c9f55c57f6132460f0f0d8333ed (diff) | |
parent | cccdfaa6e9e1ac02193ecfb9d253462fc3320d05 (diff) | |
download | nextcloud-server-0ed6f9c2dade2bede88edc53d98c6f38dda928d6.tar.gz nextcloud-server-0ed6f9c2dade2bede88edc53d98c6f38dda928d6.zip |
Merge pull request #9129 from nextcloud/feature/noid/proper-comments-offset
Add proper comment offset support
Diffstat (limited to 'tests/lib')
-rw-r--r-- | tests/lib/Comments/FakeManager.php | 8 | ||||
-rw-r--r-- | tests/lib/Comments/ManagerTest.php | 42 |
2 files changed, 50 insertions, 0 deletions
diff --git a/tests/lib/Comments/FakeManager.php b/tests/lib/Comments/FakeManager.php index d3dd1dfb58a..3ba66e96692 100644 --- a/tests/lib/Comments/FakeManager.php +++ b/tests/lib/Comments/FakeManager.php @@ -22,6 +22,14 @@ class FakeManager implements ICommentsManager { \DateTime $notOlderThan = null ) {} + public function getForObjectSince( + string $objectType, + string $objectId, + int $lastKnownCommentId, + string $sortDirection = 'asc', + int $limit = 30 + ): array { return []; } + public function getNumberOfCommentsForObject($objectType, $objectId, \DateTime $notOlderThan = null) {} public function create($actorType, $actorId, $objectType, $objectId) {} diff --git a/tests/lib/Comments/ManagerTest.php b/tests/lib/Comments/ManagerTest.php index 671389232e2..28002ff42cc 100644 --- a/tests/lib/Comments/ManagerTest.php +++ b/tests/lib/Comments/ManagerTest.php @@ -354,6 +354,48 @@ class ManagerTest extends TestCase { ], $amount); } + /** + * @dataProvider dataGetForObjectSince + * @param $lastKnown + * @param $order + * @param $limit + * @param $resultFrom + * @param $resultTo + */ + public function testGetForObjectSince($lastKnown, $order, $limit, $resultFrom, $resultTo) { + $ids = []; + $ids[] = $this->addDatabaseEntry(0, 0); + $ids[] = $this->addDatabaseEntry(0, 0); + $ids[] = $this->addDatabaseEntry(0, 0); + $ids[] = $this->addDatabaseEntry(0, 0); + $ids[] = $this->addDatabaseEntry(0, 0); + + $manager = $this->getManager(); + $comments = $manager->getForObjectSince('files', 'file64', ($lastKnown === null ? 0 : $ids[$lastKnown]), $order, $limit); + + $expected = array_slice($ids, $resultFrom, $resultTo - $resultFrom + 1); + if ($order === 'desc') { + $expected = array_reverse($expected); + } + + $this->assertSame($expected, array_map(function(IComment $c) { + return (int) $c->getId(); + }, $comments)); + } + + public function dataGetForObjectSince() { + return [ + [null, 'asc', 20, 0, 4], + [null, 'asc', 2, 0, 1], + [null, 'desc', 20, 0, 4], + [null, 'desc', 2, 3, 4], + [1, 'asc', 20, 2, 4], + [1, 'asc', 2, 2, 3], + [3, 'desc', 20, 0, 2], + [3, 'desc', 2, 1, 2], + ]; + } + public function invalidCreateArgsProvider() { return [ ['', 'aId-1', 'oType-1', 'oId-1'], |