]>
git.immae.eu Git - github/shaarli/Shaarli.git/blob - tests/bookmark/SearchResultTest.php
3 declare(strict_types
=1);
5 namespace Shaarli\Bookmark
;
10 * Test SearchResult class.
12 class SearchResultTest
extends TestCase
14 /** Create a SearchResult without any pagination parameter. */
15 public function testResultNoParameters(): void
17 $searchResult = SearchResult
::getSearchResult($data = ['a', 'b', 'c', 'd', 'e', 'f']);
19 static::assertSame($data, $searchResult->getBookmarks());
20 static::assertSame(6, $searchResult->getResultCount());
21 static::assertSame(6, $searchResult->getTotalCount());
22 static::assertSame(null, $searchResult->getLimit());
23 static::assertSame(0, $searchResult->getOffset());
24 static::assertSame(1, $searchResult->getPage());
25 static::assertSame(1, $searchResult->getLastPage());
26 static::assertTrue($searchResult->isFirstPage());
27 static::assertTrue($searchResult->isLastPage());
30 /** Create a SearchResult with only an offset parameter */
31 public function testResultWithOffset(): void
33 $searchResult = SearchResult
::getSearchResult(['a', 'b', 'c', 'd', 'e', 'f'], 2);
35 static::assertSame([2 => 'c', 3 => 'd', 4 => 'e', 5 => 'f'], $searchResult->getBookmarks());
36 static::assertSame(4, $searchResult->getResultCount());
37 static::assertSame(6, $searchResult->getTotalCount());
38 static::assertSame(null, $searchResult->getLimit());
39 static::assertSame(2, $searchResult->getOffset());
40 static::assertSame(2, $searchResult->getPage());
41 static::assertSame(2, $searchResult->getLastPage());
42 static::assertFalse($searchResult->isFirstPage());
43 static::assertTrue($searchResult->isLastPage());
46 /** Create a SearchResult with only a limit parameter */
47 public function testResultWithLimit(): void
49 $searchResult = SearchResult
::getSearchResult(['a', 'b', 'c', 'd', 'e', 'f'], 0, 2);
51 static::assertSame([0 => 'a', 1 => 'b'], $searchResult->getBookmarks());
52 static::assertSame(2, $searchResult->getResultCount());
53 static::assertSame(6, $searchResult->getTotalCount());
54 static::assertSame(2, $searchResult->getLimit());
55 static::assertSame(0, $searchResult->getOffset());
56 static::assertSame(1, $searchResult->getPage());
57 static::assertSame(3, $searchResult->getLastPage());
58 static::assertTrue($searchResult->isFirstPage());
59 static::assertFalse($searchResult->isLastPage());
62 /** Create a SearchResult with offset and limit parameters */
63 public function testResultWithLimitAndOffset(): void
65 $searchResult = SearchResult
::getSearchResult(['a', 'b', 'c', 'd', 'e', 'f'], 2, 2);
67 static::assertSame([2 => 'c', 3 => 'd'], $searchResult->getBookmarks());
68 static::assertSame(2, $searchResult->getResultCount());
69 static::assertSame(6, $searchResult->getTotalCount());
70 static::assertSame(2, $searchResult->getLimit());
71 static::assertSame(2, $searchResult->getOffset());
72 static::assertSame(2, $searchResult->getPage());
73 static::assertSame(3, $searchResult->getLastPage());
74 static::assertFalse($searchResult->isFirstPage());
75 static::assertFalse($searchResult->isLastPage());
78 /** Create a SearchResult with offset and limit parameters displaying the last page */
79 public function testResultWithLimitAndOffsetLastPage(): void
81 $searchResult = SearchResult
::getSearchResult(['a', 'b', 'c', 'd', 'e', 'f'], 4, 2);
83 static::assertSame([4 => 'e', 5 => 'f'], $searchResult->getBookmarks());
84 static::assertSame(2, $searchResult->getResultCount());
85 static::assertSame(6, $searchResult->getTotalCount());
86 static::assertSame(2, $searchResult->getLimit());
87 static::assertSame(4, $searchResult->getOffset());
88 static::assertSame(3, $searchResult->getPage());
89 static::assertSame(3, $searchResult->getLastPage());
90 static::assertFalse($searchResult->isFirstPage());
91 static::assertTrue($searchResult->isLastPage());
94 /** Create a SearchResult with offset and limit parameters out of bound (display the last page) */
95 public function testResultWithLimitAndOffsetOutOfBounds(): void
97 $searchResult = SearchResult
::getSearchResult(['a', 'b', 'c', 'd', 'e', 'f'], 12, 2);
99 static::assertSame([4 => 'e', 5 => 'f'], $searchResult->getBookmarks());
100 static::assertSame(2, $searchResult->getResultCount());
101 static::assertSame(6, $searchResult->getTotalCount());
102 static::assertSame(2, $searchResult->getLimit());
103 static::assertSame(-2, $searchResult->getOffset());
104 static::assertSame(3, $searchResult->getPage());
105 static::assertSame(3, $searchResult->getLastPage());
106 static::assertFalse($searchResult->isFirstPage());
107 static::assertTrue($searchResult->isLastPage());
110 /** Create a SearchResult with offset and limit parameters out of bound (no result) */
111 public function testResultWithLimitAndOffsetOutOfBoundsNoResult(): void
113 $searchResult = SearchResult
::getSearchResult(['a', 'b', 'c', 'd', 'e', 'f'], 12, 2, true);
115 static::assertSame([], $searchResult->getBookmarks());
116 static::assertSame(0, $searchResult->getResultCount());
117 static::assertSame(6, $searchResult->getTotalCount());
118 static::assertSame(2, $searchResult->getLimit());
119 static::assertSame(12, $searchResult->getOffset());
120 static::assertSame(7, $searchResult->getPage());
121 static::assertSame(3, $searchResult->getLastPage());
122 static::assertFalse($searchResult->isFirstPage());
123 static::assertFalse($searchResult->isLastPage());