diff options
author | ArthurHoaro <arthur@hoa.ro> | 2020-10-13 12:05:08 +0200 |
---|---|---|
committer | ArthurHoaro <arthur@hoa.ro> | 2020-10-13 12:05:08 +0200 |
commit | b6f678a5a1d15acf284ebcec16c905e976671ce1 (patch) | |
tree | 33c7da831482ed79c44896ef19c73c72ada84f2e /tests/api/controllers/tags | |
parent | b14687036b9b800681197f51fdc47e62f0c88e2e (diff) | |
parent | 1c1520b6b98ab20201bfe15577782a52320339df (diff) | |
download | Shaarli-b6f678a5a1d15acf284ebcec16c905e976671ce1.tar.gz Shaarli-b6f678a5a1d15acf284ebcec16c905e976671ce1.tar.zst Shaarli-b6f678a5a1d15acf284ebcec16c905e976671ce1.zip |
Merge branch 'v0.12' into latest
Diffstat (limited to 'tests/api/controllers/tags')
-rw-r--r-- | tests/api/controllers/tags/DeleteTagTest.php | 41 | ||||
-rw-r--r-- | tests/api/controllers/tags/GetTagNameTest.php | 20 | ||||
-rw-r--r-- | tests/api/controllers/tags/GetTagsTest.php | 29 | ||||
-rw-r--r-- | tests/api/controllers/tags/PutTagTest.php | 43 |
4 files changed, 73 insertions, 60 deletions
diff --git a/tests/api/controllers/tags/DeleteTagTest.php b/tests/api/controllers/tags/DeleteTagTest.php index 84e1d56e..1326eb47 100644 --- a/tests/api/controllers/tags/DeleteTagTest.php +++ b/tests/api/controllers/tags/DeleteTagTest.php | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | namespace Shaarli\Api\Controllers; | 4 | namespace Shaarli\Api\Controllers; |
5 | 5 | ||
6 | use Shaarli\Bookmark\BookmarkFileService; | ||
6 | use Shaarli\Bookmark\LinkDB; | 7 | use Shaarli\Bookmark\LinkDB; |
7 | use Shaarli\Config\ConfigManager; | 8 | use Shaarli\Config\ConfigManager; |
8 | use Shaarli\History; | 9 | use Shaarli\History; |
@@ -11,7 +12,7 @@ use Slim\Http\Environment; | |||
11 | use Slim\Http\Request; | 12 | use Slim\Http\Request; |
12 | use Slim\Http\Response; | 13 | use Slim\Http\Response; |
13 | 14 | ||
14 | class DeleteTagTest extends \PHPUnit\Framework\TestCase | 15 | class DeleteTagTest extends \Shaarli\TestCase |
15 | { | 16 | { |
16 | /** | 17 | /** |
17 | * @var string datastore to test write operations | 18 | * @var string datastore to test write operations |
@@ -34,9 +35,9 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
34 | protected $refDB = null; | 35 | protected $refDB = null; |
35 | 36 | ||
36 | /** | 37 | /** |
37 | * @var LinkDB instance. | 38 | * @var BookmarkFileService instance. |
38 | */ | 39 | */ |
39 | protected $linkDB; | 40 | protected $bookmarkService; |
40 | 41 | ||
41 | /** | 42 | /** |
42 | * @var HistoryController instance. | 43 | * @var HistoryController instance. |
@@ -54,20 +55,22 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
54 | protected $controller; | 55 | protected $controller; |
55 | 56 | ||
56 | /** | 57 | /** |
57 | * Before each test, instantiate a new Api with its config, plugins and links. | 58 | * Before each test, instantiate a new Api with its config, plugins and bookmarks. |
58 | */ | 59 | */ |
59 | public function setUp() | 60 | protected function setUp(): void |
60 | { | 61 | { |
61 | $this->conf = new ConfigManager('tests/utils/config/configJson'); | 62 | $this->conf = new ConfigManager('tests/utils/config/configJson'); |
63 | $this->conf->set('resource.datastore', self::$testDatastore); | ||
62 | $this->refDB = new \ReferenceLinkDB(); | 64 | $this->refDB = new \ReferenceLinkDB(); |
63 | $this->refDB->write(self::$testDatastore); | 65 | $this->refDB->write(self::$testDatastore); |
64 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); | ||
65 | $refHistory = new \ReferenceHistory(); | 66 | $refHistory = new \ReferenceHistory(); |
66 | $refHistory->write(self::$testHistory); | 67 | $refHistory->write(self::$testHistory); |
67 | $this->history = new History(self::$testHistory); | 68 | $this->history = new History(self::$testHistory); |
69 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); | ||
70 | |||
68 | $this->container = new Container(); | 71 | $this->container = new Container(); |
69 | $this->container['conf'] = $this->conf; | 72 | $this->container['conf'] = $this->conf; |
70 | $this->container['db'] = $this->linkDB; | 73 | $this->container['db'] = $this->bookmarkService; |
71 | $this->container['history'] = $this->history; | 74 | $this->container['history'] = $this->history; |
72 | 75 | ||
73 | $this->controller = new Tags($this->container); | 76 | $this->controller = new Tags($this->container); |
@@ -76,7 +79,7 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
76 | /** | 79 | /** |
77 | * After each test, remove the test datastore. | 80 | * After each test, remove the test datastore. |
78 | */ | 81 | */ |
79 | public function tearDown() | 82 | protected function tearDown(): void |
80 | { | 83 | { |
81 | @unlink(self::$testDatastore); | 84 | @unlink(self::$testDatastore); |
82 | @unlink(self::$testHistory); | 85 | @unlink(self::$testHistory); |
@@ -88,7 +91,7 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
88 | public function testDeleteTagValid() | 91 | public function testDeleteTagValid() |
89 | { | 92 | { |
90 | $tagName = 'gnu'; | 93 | $tagName = 'gnu'; |
91 | $tags = $this->linkDB->linksCountPerTag(); | 94 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
92 | $this->assertTrue($tags[$tagName] > 0); | 95 | $this->assertTrue($tags[$tagName] > 0); |
93 | $env = Environment::mock([ | 96 | $env = Environment::mock([ |
94 | 'REQUEST_METHOD' => 'DELETE', | 97 | 'REQUEST_METHOD' => 'DELETE', |
@@ -99,11 +102,11 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
99 | $this->assertEquals(204, $response->getStatusCode()); | 102 | $this->assertEquals(204, $response->getStatusCode()); |
100 | $this->assertEmpty((string) $response->getBody()); | 103 | $this->assertEmpty((string) $response->getBody()); |
101 | 104 | ||
102 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); | 105 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); |
103 | $tags = $this->linkDB->linksCountPerTag(); | 106 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
104 | $this->assertFalse(isset($tags[$tagName])); | 107 | $this->assertFalse(isset($tags[$tagName])); |
105 | 108 | ||
106 | // 2 links affected | 109 | // 2 bookmarks affected |
107 | $historyEntry = $this->history->getHistory()[0]; | 110 | $historyEntry = $this->history->getHistory()[0]; |
108 | $this->assertEquals(History::UPDATED, $historyEntry['event']); | 111 | $this->assertEquals(History::UPDATED, $historyEntry['event']); |
109 | $this->assertTrue( | 112 | $this->assertTrue( |
@@ -122,7 +125,7 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
122 | public function testDeleteTagCaseSensitivity() | 125 | public function testDeleteTagCaseSensitivity() |
123 | { | 126 | { |
124 | $tagName = 'sTuff'; | 127 | $tagName = 'sTuff'; |
125 | $tags = $this->linkDB->linksCountPerTag(); | 128 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
126 | $this->assertTrue($tags[$tagName] > 0); | 129 | $this->assertTrue($tags[$tagName] > 0); |
127 | $env = Environment::mock([ | 130 | $env = Environment::mock([ |
128 | 'REQUEST_METHOD' => 'DELETE', | 131 | 'REQUEST_METHOD' => 'DELETE', |
@@ -133,8 +136,8 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
133 | $this->assertEquals(204, $response->getStatusCode()); | 136 | $this->assertEquals(204, $response->getStatusCode()); |
134 | $this->assertEmpty((string) $response->getBody()); | 137 | $this->assertEmpty((string) $response->getBody()); |
135 | 138 | ||
136 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); | 139 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); |
137 | $tags = $this->linkDB->linksCountPerTag(); | 140 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
138 | $this->assertFalse(isset($tags[$tagName])); | 141 | $this->assertFalse(isset($tags[$tagName])); |
139 | $this->assertTrue($tags[strtolower($tagName)] > 0); | 142 | $this->assertTrue($tags[strtolower($tagName)] > 0); |
140 | 143 | ||
@@ -147,14 +150,14 @@ class DeleteTagTest extends \PHPUnit\Framework\TestCase | |||
147 | 150 | ||
148 | /** | 151 | /** |
149 | * Test DELETE tag endpoint: reach not existing tag. | 152 | * Test DELETE tag endpoint: reach not existing tag. |
150 | * | ||
151 | * @expectedException Shaarli\Api\Exceptions\ApiTagNotFoundException | ||
152 | * @expectedExceptionMessage Tag not found | ||
153 | */ | 153 | */ |
154 | public function testDeleteLink404() | 154 | public function testDeleteLink404() |
155 | { | 155 | { |
156 | $this->expectException(\Shaarli\Api\Exceptions\ApiTagNotFoundException::class); | ||
157 | $this->expectExceptionMessage('Tag not found'); | ||
158 | |||
156 | $tagName = 'nopenope'; | 159 | $tagName = 'nopenope'; |
157 | $tags = $this->linkDB->linksCountPerTag(); | 160 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
158 | $this->assertFalse(isset($tags[$tagName])); | 161 | $this->assertFalse(isset($tags[$tagName])); |
159 | $env = Environment::mock([ | 162 | $env = Environment::mock([ |
160 | 'REQUEST_METHOD' => 'DELETE', | 163 | 'REQUEST_METHOD' => 'DELETE', |
diff --git a/tests/api/controllers/tags/GetTagNameTest.php b/tests/api/controllers/tags/GetTagNameTest.php index a2525c17..9c05954b 100644 --- a/tests/api/controllers/tags/GetTagNameTest.php +++ b/tests/api/controllers/tags/GetTagNameTest.php | |||
@@ -2,8 +2,10 @@ | |||
2 | 2 | ||
3 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
4 | 4 | ||
5 | use Shaarli\Bookmark\BookmarkFileService; | ||
5 | use Shaarli\Bookmark\LinkDB; | 6 | use Shaarli\Bookmark\LinkDB; |
6 | use Shaarli\Config\ConfigManager; | 7 | use Shaarli\Config\ConfigManager; |
8 | use Shaarli\History; | ||
7 | use Slim\Container; | 9 | use Slim\Container; |
8 | use Slim\Http\Environment; | 10 | use Slim\Http\Environment; |
9 | use Slim\Http\Request; | 11 | use Slim\Http\Request; |
@@ -16,7 +18,7 @@ use Slim\Http\Response; | |||
16 | * | 18 | * |
17 | * @package Shaarli\Api\Controllers | 19 | * @package Shaarli\Api\Controllers |
18 | */ | 20 | */ |
19 | class GetTagNameTest extends \PHPUnit\Framework\TestCase | 21 | class GetTagNameTest extends \Shaarli\TestCase |
20 | { | 22 | { |
21 | /** | 23 | /** |
22 | * @var string datastore to test write operations | 24 | * @var string datastore to test write operations |
@@ -49,17 +51,19 @@ class GetTagNameTest extends \PHPUnit\Framework\TestCase | |||
49 | const NB_FIELDS_TAG = 2; | 51 | const NB_FIELDS_TAG = 2; |
50 | 52 | ||
51 | /** | 53 | /** |
52 | * Before each test, instantiate a new Api with its config, plugins and links. | 54 | * Before each test, instantiate a new Api with its config, plugins and bookmarks. |
53 | */ | 55 | */ |
54 | public function setUp() | 56 | protected function setUp(): void |
55 | { | 57 | { |
56 | $this->conf = new ConfigManager('tests/utils/config/configJson'); | 58 | $this->conf = new ConfigManager('tests/utils/config/configJson'); |
59 | $this->conf->set('resource.datastore', self::$testDatastore); | ||
57 | $this->refDB = new \ReferenceLinkDB(); | 60 | $this->refDB = new \ReferenceLinkDB(); |
58 | $this->refDB->write(self::$testDatastore); | 61 | $this->refDB->write(self::$testDatastore); |
62 | $history = new History('sandbox/history.php'); | ||
59 | 63 | ||
60 | $this->container = new Container(); | 64 | $this->container = new Container(); |
61 | $this->container['conf'] = $this->conf; | 65 | $this->container['conf'] = $this->conf; |
62 | $this->container['db'] = new LinkDB(self::$testDatastore, true, false); | 66 | $this->container['db'] = new BookmarkFileService($this->conf, $history, true); |
63 | $this->container['history'] = null; | 67 | $this->container['history'] = null; |
64 | 68 | ||
65 | $this->controller = new Tags($this->container); | 69 | $this->controller = new Tags($this->container); |
@@ -68,7 +72,7 @@ class GetTagNameTest extends \PHPUnit\Framework\TestCase | |||
68 | /** | 72 | /** |
69 | * After each test, remove the test datastore. | 73 | * After each test, remove the test datastore. |
70 | */ | 74 | */ |
71 | public function tearDown() | 75 | protected function tearDown(): void |
72 | { | 76 | { |
73 | @unlink(self::$testDatastore); | 77 | @unlink(self::$testDatastore); |
74 | } | 78 | } |
@@ -113,12 +117,12 @@ class GetTagNameTest extends \PHPUnit\Framework\TestCase | |||
113 | 117 | ||
114 | /** | 118 | /** |
115 | * Test basic getTag service: get non existent tag => ApiTagNotFoundException. | 119 | * Test basic getTag service: get non existent tag => ApiTagNotFoundException. |
116 | * | ||
117 | * @expectedException Shaarli\Api\Exceptions\ApiTagNotFoundException | ||
118 | * @expectedExceptionMessage Tag not found | ||
119 | */ | 120 | */ |
120 | public function testGetTag404() | 121 | public function testGetTag404() |
121 | { | 122 | { |
123 | $this->expectException(\Shaarli\Api\Exceptions\ApiTagNotFoundException::class); | ||
124 | $this->expectExceptionMessage('Tag not found'); | ||
125 | |||
122 | $env = Environment::mock([ | 126 | $env = Environment::mock([ |
123 | 'REQUEST_METHOD' => 'GET', | 127 | 'REQUEST_METHOD' => 'GET', |
124 | ]); | 128 | ]); |
diff --git a/tests/api/controllers/tags/GetTagsTest.php b/tests/api/controllers/tags/GetTagsTest.php index 98628c98..3459fdfa 100644 --- a/tests/api/controllers/tags/GetTagsTest.php +++ b/tests/api/controllers/tags/GetTagsTest.php | |||
@@ -1,8 +1,10 @@ | |||
1 | <?php | 1 | <?php |
2 | namespace Shaarli\Api\Controllers; | 2 | namespace Shaarli\Api\Controllers; |
3 | 3 | ||
4 | use Shaarli\Bookmark\BookmarkFileService; | ||
4 | use Shaarli\Bookmark\LinkDB; | 5 | use Shaarli\Bookmark\LinkDB; |
5 | use Shaarli\Config\ConfigManager; | 6 | use Shaarli\Config\ConfigManager; |
7 | use Shaarli\History; | ||
6 | use Slim\Container; | 8 | use Slim\Container; |
7 | use Slim\Http\Environment; | 9 | use Slim\Http\Environment; |
8 | use Slim\Http\Request; | 10 | use Slim\Http\Request; |
@@ -15,7 +17,7 @@ use Slim\Http\Response; | |||
15 | * | 17 | * |
16 | * @package Shaarli\Api\Controllers | 18 | * @package Shaarli\Api\Controllers |
17 | */ | 19 | */ |
18 | class GetTagsTest extends \PHPUnit\Framework\TestCase | 20 | class GetTagsTest extends \Shaarli\TestCase |
19 | { | 21 | { |
20 | /** | 22 | /** |
21 | * @var string datastore to test write operations | 23 | * @var string datastore to test write operations |
@@ -38,9 +40,9 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase | |||
38 | protected $container; | 40 | protected $container; |
39 | 41 | ||
40 | /** | 42 | /** |
41 | * @var LinkDB instance. | 43 | * @var BookmarkFileService instance. |
42 | */ | 44 | */ |
43 | protected $linkDB; | 45 | protected $bookmarkService; |
44 | 46 | ||
45 | /** | 47 | /** |
46 | * @var Tags controller instance. | 48 | * @var Tags controller instance. |
@@ -53,18 +55,21 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase | |||
53 | const NB_FIELDS_TAG = 2; | 55 | const NB_FIELDS_TAG = 2; |
54 | 56 | ||
55 | /** | 57 | /** |
56 | * Before every test, instantiate a new Api with its config, plugins and links. | 58 | * Before every test, instantiate a new Api with its config, plugins and bookmarks. |
57 | */ | 59 | */ |
58 | public function setUp() | 60 | protected function setUp(): void |
59 | { | 61 | { |
60 | $this->conf = new ConfigManager('tests/utils/config/configJson'); | 62 | $this->conf = new ConfigManager('tests/utils/config/configJson'); |
63 | $this->conf->set('resource.datastore', self::$testDatastore); | ||
61 | $this->refDB = new \ReferenceLinkDB(); | 64 | $this->refDB = new \ReferenceLinkDB(); |
62 | $this->refDB->write(self::$testDatastore); | 65 | $this->refDB->write(self::$testDatastore); |
66 | $history = new History('sandbox/history.php'); | ||
67 | |||
68 | $this->bookmarkService = new BookmarkFileService($this->conf, $history, true); | ||
63 | 69 | ||
64 | $this->container = new Container(); | 70 | $this->container = new Container(); |
65 | $this->container['conf'] = $this->conf; | 71 | $this->container['conf'] = $this->conf; |
66 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); | 72 | $this->container['db'] = $this->bookmarkService; |
67 | $this->container['db'] = $this->linkDB; | ||
68 | $this->container['history'] = null; | 73 | $this->container['history'] = null; |
69 | 74 | ||
70 | $this->controller = new Tags($this->container); | 75 | $this->controller = new Tags($this->container); |
@@ -73,7 +78,7 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase | |||
73 | /** | 78 | /** |
74 | * After every test, remove the test datastore. | 79 | * After every test, remove the test datastore. |
75 | */ | 80 | */ |
76 | public function tearDown() | 81 | protected function tearDown(): void |
77 | { | 82 | { |
78 | @unlink(self::$testDatastore); | 83 | @unlink(self::$testDatastore); |
79 | } | 84 | } |
@@ -83,7 +88,7 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase | |||
83 | */ | 88 | */ |
84 | public function testGetTagsAll() | 89 | public function testGetTagsAll() |
85 | { | 90 | { |
86 | $tags = $this->linkDB->linksCountPerTag(); | 91 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
87 | $env = Environment::mock([ | 92 | $env = Environment::mock([ |
88 | 'REQUEST_METHOD' => 'GET', | 93 | 'REQUEST_METHOD' => 'GET', |
89 | ]); | 94 | ]); |
@@ -136,7 +141,7 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase | |||
136 | */ | 141 | */ |
137 | public function testGetTagsLimitAll() | 142 | public function testGetTagsLimitAll() |
138 | { | 143 | { |
139 | $tags = $this->linkDB->linksCountPerTag(); | 144 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
140 | $env = Environment::mock([ | 145 | $env = Environment::mock([ |
141 | 'REQUEST_METHOD' => 'GET', | 146 | 'REQUEST_METHOD' => 'GET', |
142 | 'QUERY_STRING' => 'limit=all' | 147 | 'QUERY_STRING' => 'limit=all' |
@@ -170,7 +175,7 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase | |||
170 | */ | 175 | */ |
171 | public function testGetTagsVisibilityPrivate() | 176 | public function testGetTagsVisibilityPrivate() |
172 | { | 177 | { |
173 | $tags = $this->linkDB->linksCountPerTag([], 'private'); | 178 | $tags = $this->bookmarkService->bookmarksCountPerTag([], 'private'); |
174 | $env = Environment::mock([ | 179 | $env = Environment::mock([ |
175 | 'REQUEST_METHOD' => 'GET', | 180 | 'REQUEST_METHOD' => 'GET', |
176 | 'QUERY_STRING' => 'visibility=private' | 181 | 'QUERY_STRING' => 'visibility=private' |
@@ -190,7 +195,7 @@ class GetTagsTest extends \PHPUnit\Framework\TestCase | |||
190 | */ | 195 | */ |
191 | public function testGetTagsVisibilityPublic() | 196 | public function testGetTagsVisibilityPublic() |
192 | { | 197 | { |
193 | $tags = $this->linkDB->linksCountPerTag([], 'public'); | 198 | $tags = $this->bookmarkService->bookmarksCountPerTag([], 'public'); |
194 | $env = Environment::mock( | 199 | $env = Environment::mock( |
195 | [ | 200 | [ |
196 | 'REQUEST_METHOD' => 'GET', | 201 | 'REQUEST_METHOD' => 'GET', |
diff --git a/tests/api/controllers/tags/PutTagTest.php b/tests/api/controllers/tags/PutTagTest.php index 86106fc7..74edde78 100644 --- a/tests/api/controllers/tags/PutTagTest.php +++ b/tests/api/controllers/tags/PutTagTest.php | |||
@@ -3,6 +3,7 @@ | |||
3 | namespace Shaarli\Api\Controllers; | 3 | namespace Shaarli\Api\Controllers; |
4 | 4 | ||
5 | use Shaarli\Api\Exceptions\ApiBadParametersException; | 5 | use Shaarli\Api\Exceptions\ApiBadParametersException; |
6 | use Shaarli\Bookmark\BookmarkFileService; | ||
6 | use Shaarli\Bookmark\LinkDB; | 7 | use Shaarli\Bookmark\LinkDB; |
7 | use Shaarli\Config\ConfigManager; | 8 | use Shaarli\Config\ConfigManager; |
8 | use Shaarli\History; | 9 | use Shaarli\History; |
@@ -11,7 +12,7 @@ use Slim\Http\Environment; | |||
11 | use Slim\Http\Request; | 12 | use Slim\Http\Request; |
12 | use Slim\Http\Response; | 13 | use Slim\Http\Response; |
13 | 14 | ||
14 | class PutTagTest extends \PHPUnit\Framework\TestCase | 15 | class PutTagTest extends \Shaarli\TestCase |
15 | { | 16 | { |
16 | /** | 17 | /** |
17 | * @var string datastore to test write operations | 18 | * @var string datastore to test write operations |
@@ -44,9 +45,9 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
44 | protected $container; | 45 | protected $container; |
45 | 46 | ||
46 | /** | 47 | /** |
47 | * @var LinkDB instance. | 48 | * @var BookmarkFileService instance. |
48 | */ | 49 | */ |
49 | protected $linkDB; | 50 | protected $bookmarkService; |
50 | 51 | ||
51 | /** | 52 | /** |
52 | * @var Tags controller instance. | 53 | * @var Tags controller instance. |
@@ -59,22 +60,22 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
59 | const NB_FIELDS_TAG = 2; | 60 | const NB_FIELDS_TAG = 2; |
60 | 61 | ||
61 | /** | 62 | /** |
62 | * Before every test, instantiate a new Api with its config, plugins and links. | 63 | * Before every test, instantiate a new Api with its config, plugins and bookmarks. |
63 | */ | 64 | */ |
64 | public function setUp() | 65 | protected function setUp(): void |
65 | { | 66 | { |
66 | $this->conf = new ConfigManager('tests/utils/config/configJson.json.php'); | 67 | $this->conf = new ConfigManager('tests/utils/config/configJson'); |
68 | $this->conf->set('resource.datastore', self::$testDatastore); | ||
67 | $this->refDB = new \ReferenceLinkDB(); | 69 | $this->refDB = new \ReferenceLinkDB(); |
68 | $this->refDB->write(self::$testDatastore); | 70 | $this->refDB->write(self::$testDatastore); |
69 | |||
70 | $refHistory = new \ReferenceHistory(); | 71 | $refHistory = new \ReferenceHistory(); |
71 | $refHistory->write(self::$testHistory); | 72 | $refHistory->write(self::$testHistory); |
72 | $this->history = new History(self::$testHistory); | 73 | $this->history = new History(self::$testHistory); |
74 | $this->bookmarkService = new BookmarkFileService($this->conf, $this->history, true); | ||
73 | 75 | ||
74 | $this->container = new Container(); | 76 | $this->container = new Container(); |
75 | $this->container['conf'] = $this->conf; | 77 | $this->container['conf'] = $this->conf; |
76 | $this->linkDB = new LinkDB(self::$testDatastore, true, false); | 78 | $this->container['db'] = $this->bookmarkService; |
77 | $this->container['db'] = $this->linkDB; | ||
78 | $this->container['history'] = $this->history; | 79 | $this->container['history'] = $this->history; |
79 | 80 | ||
80 | $this->controller = new Tags($this->container); | 81 | $this->controller = new Tags($this->container); |
@@ -83,7 +84,7 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
83 | /** | 84 | /** |
84 | * After every test, remove the test datastore. | 85 | * After every test, remove the test datastore. |
85 | */ | 86 | */ |
86 | public function tearDown() | 87 | protected function tearDown(): void |
87 | { | 88 | { |
88 | @unlink(self::$testDatastore); | 89 | @unlink(self::$testDatastore); |
89 | @unlink(self::$testHistory); | 90 | @unlink(self::$testHistory); |
@@ -109,7 +110,7 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
109 | $this->assertEquals($newName, $data['name']); | 110 | $this->assertEquals($newName, $data['name']); |
110 | $this->assertEquals(2, $data['occurrences']); | 111 | $this->assertEquals(2, $data['occurrences']); |
111 | 112 | ||
112 | $tags = $this->linkDB->linksCountPerTag(); | 113 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
113 | $this->assertNotTrue(isset($tags[$tagName])); | 114 | $this->assertNotTrue(isset($tags[$tagName])); |
114 | $this->assertEquals(2, $tags[$newName]); | 115 | $this->assertEquals(2, $tags[$newName]); |
115 | 116 | ||
@@ -133,7 +134,7 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
133 | $tagName = 'gnu'; | 134 | $tagName = 'gnu'; |
134 | $newName = 'w3c'; | 135 | $newName = 'w3c'; |
135 | 136 | ||
136 | $tags = $this->linkDB->linksCountPerTag(); | 137 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
137 | $this->assertEquals(1, $tags[$newName]); | 138 | $this->assertEquals(1, $tags[$newName]); |
138 | $this->assertEquals(2, $tags[$tagName]); | 139 | $this->assertEquals(2, $tags[$tagName]); |
139 | 140 | ||
@@ -151,23 +152,23 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
151 | $this->assertEquals($newName, $data['name']); | 152 | $this->assertEquals($newName, $data['name']); |
152 | $this->assertEquals(3, $data['occurrences']); | 153 | $this->assertEquals(3, $data['occurrences']); |
153 | 154 | ||
154 | $tags = $this->linkDB->linksCountPerTag(); | 155 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
155 | $this->assertNotTrue(isset($tags[$tagName])); | 156 | $this->assertNotTrue(isset($tags[$tagName])); |
156 | $this->assertEquals(3, $tags[$newName]); | 157 | $this->assertEquals(3, $tags[$newName]); |
157 | } | 158 | } |
158 | 159 | ||
159 | /** | 160 | /** |
160 | * Test tag update with an empty new tag name => ApiBadParametersException | 161 | * Test tag update with an empty new tag name => ApiBadParametersException |
161 | * | ||
162 | * @expectedException Shaarli\Api\Exceptions\ApiBadParametersException | ||
163 | * @expectedExceptionMessage New tag name is required in the request body | ||
164 | */ | 162 | */ |
165 | public function testPutTagEmpty() | 163 | public function testPutTagEmpty() |
166 | { | 164 | { |
165 | $this->expectException(\Shaarli\Api\Exceptions\ApiBadParametersException::class); | ||
166 | $this->expectExceptionMessage('New tag name is required in the request body'); | ||
167 | |||
167 | $tagName = 'gnu'; | 168 | $tagName = 'gnu'; |
168 | $newName = ''; | 169 | $newName = ''; |
169 | 170 | ||
170 | $tags = $this->linkDB->linksCountPerTag(); | 171 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
171 | $this->assertEquals(2, $tags[$tagName]); | 172 | $this->assertEquals(2, $tags[$tagName]); |
172 | 173 | ||
173 | $env = Environment::mock([ | 174 | $env = Environment::mock([ |
@@ -185,7 +186,7 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
185 | try { | 186 | try { |
186 | $this->controller->putTag($request, new Response(), ['tagName' => $tagName]); | 187 | $this->controller->putTag($request, new Response(), ['tagName' => $tagName]); |
187 | } catch (ApiBadParametersException $e) { | 188 | } catch (ApiBadParametersException $e) { |
188 | $tags = $this->linkDB->linksCountPerTag(); | 189 | $tags = $this->bookmarkService->bookmarksCountPerTag(); |
189 | $this->assertEquals(2, $tags[$tagName]); | 190 | $this->assertEquals(2, $tags[$tagName]); |
190 | throw $e; | 191 | throw $e; |
191 | } | 192 | } |
@@ -193,12 +194,12 @@ class PutTagTest extends \PHPUnit\Framework\TestCase | |||
193 | 194 | ||
194 | /** | 195 | /** |
195 | * Test tag update on non existent tag => ApiTagNotFoundException. | 196 | * Test tag update on non existent tag => ApiTagNotFoundException. |
196 | * | ||
197 | * @expectedException Shaarli\Api\Exceptions\ApiTagNotFoundException | ||
198 | * @expectedExceptionMessage Tag not found | ||
199 | */ | 197 | */ |
200 | public function testPutTag404() | 198 | public function testPutTag404() |
201 | { | 199 | { |
200 | $this->expectException(\Shaarli\Api\Exceptions\ApiTagNotFoundException::class); | ||
201 | $this->expectExceptionMessage('Tag not found'); | ||
202 | |||
202 | $env = Environment::mock([ | 203 | $env = Environment::mock([ |
203 | 'REQUEST_METHOD' => 'PUT', | 204 | 'REQUEST_METHOD' => 'PUT', |
204 | ]); | 205 | ]); |