diff options
Diffstat (limited to 'tests/Integration/Db')
-rw-r--r-- | tests/Integration/Db/FeedMapperTest.php | 258 | ||||
-rw-r--r-- | tests/Integration/Db/ItemMapperTest.php | 285 |
2 files changed, 0 insertions, 543 deletions
diff --git a/tests/Integration/Db/FeedMapperTest.php b/tests/Integration/Db/FeedMapperTest.php deleted file mode 100644 index 803e9260b..000000000 --- a/tests/Integration/Db/FeedMapperTest.php +++ /dev/null @@ -1,258 +0,0 @@ -<?php -/** - * Nextcloud - News - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @author Daniel Opitz <dev@copynpaste.de> - * @copyright Bernhard Posselt 2015 - * @copyright Daniel Opitz 2017 - */ - -namespace OCA\News\Tests\Integration\Db; - -use OCA\News\Db\Feed; -use OCA\News\Tests\Integration\IntegrationTest; -use OCA\News\Tests\Integration\Fixtures\FeedFixture; - -class FeedMapperTest extends IntegrationTest -{ - - public function testFind() - { - $feed = new FeedFixture(); - $feed = $this->feedMapper->insert($feed); - - $fetched = $this->feedMapper->find($this->user, $feed->getId()); - - $this->assertInstanceOf(Feed::class, $fetched); - $this->assertEquals($feed->getLink(), $fetched->getLink()); - } - - public function testFindNotExisting() - { - $this->expectException('OCP\AppFramework\Db\DoesNotExistException'); - $this->feedMapper->find($this->user, 0); - } - - - public function testFindAll() - { - $feeds = [ - [ - 'userId' => $this->user, - 'items' => [] - ], - [ - 'userId' => 'john', - 'items' => [] - ] - ]; - $this->loadFeedFixtures($feeds); - - $fetched = $this->feedMapper->findAll(); - - $this->assertIsArray($fetched); - $this->assertCount(2, $fetched); - $this->assertContainsOnlyInstancesOf(Feed::class, $fetched); - - $this->tearDownUser('john'); - } - - public function testFindAllEmpty() - { - $feeds = $this->feedMapper->findAll(); - - $this->assertIsArray($feeds); - $this->assertCount(0, $feeds); - } - - - public function testFindAllFromUser() - { - $feeds = [ - [ - 'userId' => $this->user, - 'items' => [] - ], - [ - 'userId' => 'john', - 'items' => [] - ] - ]; - $this->loadFeedFixtures($feeds); - - $fetched = $this->feedMapper->findAllFromUser($this->user); - - $this->assertIsArray($fetched); - $this->assertCount(1, $fetched); - $this->assertContainsOnlyInstancesOf(Feed::class, $fetched); - - $this->tearDownUser('john'); - } - - - public function testFindAllFromUserNotExisting() - { - $fetched = $this->feedMapper->findAllFromUser('notexistinguser'); - - $this->assertIsArray($fetched); - $this->assertCount(0, $fetched); - } - - - public function testFindByUrlHash() - { - $feed = new FeedFixture( - [ - 'urlHash' => 'someTestHash', - 'title' => 'Some Test Title' - ] - ); - $feed = $this->feedMapper->insert($feed); - - $fetched = $this->feedMapper->findByUrlHash($feed->getUrlHash(), $this->user); - - $this->assertInstanceOf(Feed::class, $fetched); - $this->assertEquals($feed->getTitle(), $fetched->getTitle()); - } - - public function testFindByUrlHashMoreThanOneResult() - { - $this->expectException('OCP\AppFramework\Db\MultipleObjectsReturnedException'); - $feed1 = $this->feedMapper->insert( - new FeedFixture( - [ - 'urlHash' => 'someTestHash' - ] - ) - ); - $feed2 = $this->feedMapper->insert( - new FeedFixture( - [ - 'urlHash' => 'someTestHash' - ] - ) - ); - - $this->feedMapper->findByUrlHash($feed1->getUrlHash(), $this->user); - } - - public function testFindByUrlHashNotExisting() - { - $this->expectException('OCP\AppFramework\Db\DoesNotExistException'); - $this->feedMapper->findByUrlHash('some random hash', $this->user); - } - - - public function testDelete() - { - $this->loadFixtures('default'); - - $feeds = $this->feedMapper->findAllFromUser($this->user); - $this->assertCount(4, $feeds); - - $feed = reset($feeds); - - $items = $this->itemMapper->findAllFeed( - $feed->getId(), 100, 0, true, false, $this->user - ); - $this->assertCount(7, $items); - - $this->feedMapper->delete($feed); - - $this->assertCount(3, $this->feedMapper->findAllFromUser($this->user)); - - $items = $this->itemMapper->findAllFeed( - $feed->getId(), 100, 0, true, false, $this->user - ); - $this->assertCount(0, $items); - } - - public function testGetToDelete() - { - $this->loadFeedFixtures( - [ - ['deletedAt' => 1], - ['deletedAt' => 0], - ['deletedAt' => 1, 'userId' => 'john'], - ['deletedAt' => 1000] - ] - ); - - $fetched = $this->feedMapper->getToDelete(); - - $this->assertIsArray($fetched); - $this->assertCount(3, $fetched); - $this->assertContainsOnlyInstancesOf(Feed::class, $fetched); - - $this->tearDownUser('john'); - } - - public function testGetToDeleteOlderThan() - { - $this->loadFeedFixtures( - [ - ['deletedAt' => 1], - ['deletedAt' => 0], - ['deletedAt' => 1, 'userId' => 'john'], - ['deletedAt' => 1000] - ] - ); - - $fetched = $this->feedMapper->getToDelete(1000); - - $this->assertIsArray($fetched); - $this->assertCount(2, $fetched); - $this->assertContainsOnlyInstancesOf(Feed::class, $fetched); - - $this->tearDownUser('john'); - } - - public function testGetToDeleteUser() - { - $this->loadFeedFixtures( - [ - ['deletedAt' => 1], - ['deletedAt' => 0], - ['deletedAt' => 1, 'userId' => 'john'], - ['deletedAt' => 1000] - ] - ); - - $fetched = $this->feedMapper->getToDelete(2000, $this->user); - - $this->assertIsArray($fetched); - $this->assertCount(2, $fetched); - $this->assertContainsOnlyInstancesOf(Feed::class, $fetched); - - $this->tearDownUser('john'); - } - - public function testGetToDeleteEmpty() - { - $fetched = $this->feedMapper->getToDelete(); - - $this->assertIsArray($fetched); - $this->assertCount(0, $fetched); - } - - public function testDeleteUser() - { - $this->loadFixtures('default'); - - $this->assertCount(4, $this->feedMapper->findAllFromUser($this->user)); - - $items = $this->itemMapper->findAllItems(100, 0, 0, true, false, $this->user); - $this->assertCount(9, $items); - - $this->feedMapper->deleteUser($this->user); - - $this->assertCount(0, $this->feedMapper->findAllFromUser($this->user)); - - $items = $this->itemMapper->findAllItems(100, 0, 0, true, false, $this->user); - $this->assertCount(0, $items); - } -} diff --git a/tests/Integration/Db/ItemMapperTest.php b/tests/Integration/Db/ItemMapperTest.php deleted file mode 100644 index ea7f306df..000000000 --- a/tests/Integration/Db/ItemMapperTest.php +++ /dev/null @@ -1,285 +0,0 @@ -<?php -/** - * Nextcloud - News - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @copyright Bernhard Posselt 2015 - */ - -namespace OCA\News\Tests\Integration\Db; - -use OCA\News\Tests\Integration\IntegrationTest; -use OCA\News\Tests\Integration\Fixtures\FeedFixture; -use OCA\News\Tests\Integration\Fixtures\ItemFixture; - -class ItemMapperTest extends IntegrationTest -{ - - public function testFind() - { - $feed = new FeedFixture(); - $feed = $this->feedMapper->insert($feed); - - $item = new ItemFixture(['feedId' => $feed->getId()]); - - $item = $this->itemMapper->insert($item); - - $fetched = $this->itemMapper->find($this->user, $item->getId()); - - $this->assertEquals($item->getTitle(), $fetched->getTitle()); - } - - /** - * Same as whereId with easier title search - * - * @param $title - * @return mixed - */ - private function whereTitleId($title) - { - return $this->findItemByTitle($title)->getId(); - } - - /** - * @expectedException \OCP\AppFramework\Db\DoesNotExistException - */ - public function testFindNotFoundWhenDeletedFeed() - { - $this->expectException('OCP\AppFramework\Db\DoesNotExistException'); - $this->loadFixtures('default'); - - $id = $this->whereTitleId('not found feed'); - $this->itemMapper->find($this->user, $id); - } - - - /** - * @expectedException \OCP\AppFramework\Db\DoesNotExistException - */ - public function testFindNotFoundWhenDeletedFolder() - { - $this->expectException('OCP\AppFramework\Db\DoesNotExistException'); - $this->loadFixtures('default'); - - - $id = $this->whereTitleId('not found folder'); - $this->itemMapper->find($this->user, $id); - } - - - private function deleteReadOlderThanThreshold() - { - $this->loadFixtures('default'); - - $this->itemMapper->deleteReadOlderThanThreshold(1); - - $this->itemMapper->find($this->user, $this->whereTitleId('a title1')); - $this->itemMapper->find($this->user, $this->whereTitleId('a title2')); - $this->itemMapper->find($this->user, $this->whereTitleId('a title3')); - $this->itemMapper->find($this->user, $this->whereTitleId('del3')); - $this->itemMapper->find($this->user, $this->whereTitleId('del4')); - } - - /** - * @expectedException \OCP\AppFramework\Db\DoesNotExistException - */ - public function testDeleteOlderThanThresholdOne() - { - $this->expectException('OCP\AppFramework\Db\DoesNotExistException'); - $this->loadFixtures('default'); - $id = $this->whereTitleId('del1'); - - $this->deleteReadOlderThanThreshold(); - - $this->itemMapper->find($this->user, $id); - } - - /** - * @expectedException \OCP\AppFramework\Db\DoesNotExistException - */ - public function testDeleteOlderThanThresholdTwo() - { - $this->expectException('OCP\AppFramework\Db\DoesNotExistException'); - $this->loadFixtures('default'); - $id = $this->whereTitleId('del2'); - - $this->deleteReadOlderThanThreshold(); - - $this->itemMapper->find($this->user, $id); - } - - - public function testStarredCount() - { - $this->loadFixtures('default'); - - $count = $this->itemMapper->starredCount($this->user); - $this->assertEquals(2, $count); - } - - - public function testReadAll() - { - $this->loadFixtures('default'); - - $this->itemMapper->readAll(PHP_INT_MAX, 10, $this->user); - - $items = $this->itemMapper->findAllItems( - 30, 0, 0, false, false, $this->user - ); - - $this->assertEquals(0, count($items)); - - $itemId = $this->whereTitleId('a title1'); - $item = $this->itemMapper->find($this->user, $itemId); - - $this->assertEquals(10, $item->getLastModified()); - - $itemId = $this->whereTitleId('a title3'); - $item = $this->itemMapper->find($this->user, $itemId); - - $this->assertEquals(10, $item->getLastModified()); - - $itemId = $this->whereTitleId('a title9'); - $item = $this->itemMapper->find($this->user, $itemId); - - $this->assertEquals(10, $item->getLastModified()); - } - - - public function testReadFeed() - { - $this->loadFixtures('default'); - - $feedId = $this->findFeedByTitle('third feed')->getId(); - $this->itemMapper->readFeed( - $feedId, PHP_INT_MAX, 10, $this->user - ); - - $items = $this->itemMapper->findAllItems( - 30, 0, 0, false, false, $this->user - ); - - $this->assertEquals(2, count($items)); - - $item = $this->findItemByTitle('a title9'); - $item = $this->itemMapper->find($this->user, $item->getId()); - - $this->assertEquals(10, $item->getLastModified()); - - $item = $this->findItemByTitle('a title3'); - $item = $this->itemMapper->find($this->user, $item->getId()); - $this->assertTrue($item->isUnread()); - - - $item = $this->findItemByTitle('a title1'); - $item = $this->itemMapper->find($this->user, $item->getId()); - $this->assertTrue($item->isUnread()); - } - - - public function testDeleteUser() - { - $this->loadFixtures('default'); - - $this->itemMapper->deleteUser($this->user); - $id = $this->itemMapper->getNewestItemId($this->user); - - $this->assertEquals(0, $id); - } - - public function testGetNewestItemId() - { - $this->loadFixtures('default'); - - $id = $this->itemMapper->getNewestItemId($this->user); - - $itemId = $this->whereTitleId('no folder'); - $this->assertEquals($itemId, $id); - } - - public function testFindAllUnreadOrStarred() - { - $this->loadFixtures('default'); - - $items = $this->itemMapper->findAllUnreadOrStarred($this->user); - $this->assertEquals(4, count($items)); - } - - - public function testReadItem() - { - $this->loadFixtures('readitem'); - // assert that all items are unread - $feed = $this->feedMapper->where(['userId' => 'john'])[0]; - $items = $this->itemMapper->where(['feedId' => $feed->getId()]); - foreach ($items as $item) { - $this->assertTrue($item->isUnread()); - } - $feed = $this->feedMapper->where(['userId' => 'test'])[0]; - $items = $this->itemMapper->where(['feedId' => $feed->getId()]); - foreach ($items as $item) { - $this->assertTrue($item->isUnread()); - } - - // read an item - $duplicateItem = $this->itemMapper->where(['feedId' => $feed->getId()])[0]; - $this->itemMapper->readItem($duplicateItem->getId(), true, 1000, $this->user); - - // assert that all test user's same items are read - $items = $this->itemMapper->where(['feedId' => $feed->getId(), 'title' => 'blubb']); - foreach ($items as $item) { - $this->assertFalse($item->isUnread()); - } - - // assert that a different item is not read - $items = $this->itemMapper->where(['feedId' => $feed->getId(), 'title' => 'blubbs']); - foreach ($items as $item) { - $this->assertTrue($item->isUnread()); - } - - // assert that other user's same items stayed the same - $johnsFeed = $this->feedMapper->where(['userId' => 'john'])[0]; - $items = $this->itemMapper->where(['feedId' => $johnsFeed->getId()]); - foreach ($items as $item) { - $this->assertTrue($item->isUnread()); - } - } - - public function testUnreadItem() - { - $this->loadFixtures('readitem'); - // unread an item - $feed = $this->feedMapper->where(['userId' => 'test'])[0]; - $duplicateItem = $this->itemMapper->where(['feedId' => $feed->getId()])[0]; - $this->itemMapper->readItem($duplicateItem->getId(), true, 1000, $this->user); - $this->itemMapper->readItem($duplicateItem->getId(), false, 1000, $this->user); - - // assert that only one item is now unread - $items = $this->itemMapper->where(['feedId' => $feed->getId(), 'title' => 'blubb']); - foreach ($items as $item) { - if ($item->getId() === $duplicateItem->getId()) { - $this->assertTrue($item->isUnread()); - } else { - $this->assertFalse($item->isUnread()); - } - } - - // assert that other user's same items stayed the same - $johnsFeed = $this->feedMapper->where(['userId' => 'john'])[0]; - $items = $this->itemMapper->where(['feedId' => $johnsFeed->getId()]); - foreach ($items as $item) { - $this->assertTrue($item->isUnread()); - } - } - - protected function tearDown(): void - { - parent::tearDown(); - $this->clearUserNewsDatabase('john'); - } - -} |