summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
authorRoeland Jago Douma <rullzer@users.noreply.github.com>2018-04-22 20:47:30 +0200
committerGitHub <noreply@github.com>2018-04-22 20:47:30 +0200
commit0ed6f9c2dade2bede88edc53d98c6f38dda928d6 (patch)
tree3a26392e97b21039958e33b770a2a6db21351840 /tests/lib
parent9f4e928c0f759c9f55c57f6132460f0f0d8333ed (diff)
parentcccdfaa6e9e1ac02193ecfb9d253462fc3320d05 (diff)
downloadnextcloud-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.php8
-rw-r--r--tests/lib/Comments/ManagerTest.php42
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'],