summaryrefslogtreecommitdiffstats
path: root/tests/Unit/Service/OPMLServiceTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Unit/Service/OPMLServiceTest.php')
-rw-r--r--tests/Unit/Service/OPMLServiceTest.php143
1 files changed, 143 insertions, 0 deletions
diff --git a/tests/Unit/Service/OPMLServiceTest.php b/tests/Unit/Service/OPMLServiceTest.php
new file mode 100644
index 000000000..6f117c066
--- /dev/null
+++ b/tests/Unit/Service/OPMLServiceTest.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * Nextcloud - News
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Alessandro Cosentino <cosenal@gmail.com>
+ * @author Bernhard Posselt <dev@bernhard-posselt.com>
+ * @copyright 2012 Alessandro Cosentino
+ * @copyright 2012-2014 Bernhard Posselt
+ */
+
+
+namespace OCA\News\Tests\Unit\Service;
+
+use FeedIo\Explorer;
+use FeedIo\Reader\ReadErrorException;
+
+use OC\L10N\L10N;
+use OCA\News\Db\FeedMapperV2;
+use OCA\News\Db\Folder;
+use OCA\News\Fetcher\FeedFetcher;
+use OCA\News\Service\Exceptions\ServiceConflictException;
+use OCA\News\Service\Exceptions\ServiceNotFoundException;
+use OCA\News\Service\FeedServiceV2;
+use OCA\News\Service\FolderServiceV2;
+use OCA\News\Service\ImportService;
+use OCA\News\Service\ItemServiceV2;
+use OCA\News\Service\OpmlService;
+use OCA\News\Utility\OPMLExporter;
+use OCA\News\Utility\Time;
+use OCP\AppFramework\Db\DoesNotExistException;
+
+use OCA\News\Db\Feed;
+use OCA\News\Db\Item;
+use OCP\IConfig;
+use OCP\IL10N;
+
+use PHPUnit\Framework\TestCase;
+use Psr\Log\LoggerInterface;
+
+
+class OPMLServiceTest extends TestCase
+{
+ /**
+ * @var \PHPUnit\Framework\MockObject\MockObject|FolderServiceV2
+ */
+ private $folderService;
+
+ /**
+ * @var \PHPUnit\Framework\MockObject\MockObject|FeedServiceV2
+ */
+ private $feedService;
+
+ /**
+ * @var \PHPUnit\Framework\MockObject\MockObject|OPMLExporter
+ */
+ private $exporter;
+
+ /** @var OpmlService */
+ private $class;
+
+ /**
+ * @var string
+ */
+ private $uid;
+
+ protected function setUp(): void
+ {
+ $this->exporter = $this->getMockBuilder(OPMLExporter::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->folderService = $this
+ ->getMockBuilder(FolderServiceV2::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+ $this->feedService = $this
+ ->getMockBuilder(FeedServiceV2::class)
+ ->disableOriginalConstructor()
+ ->getMock();
+
+ $this->time = 333333;
+
+ $this->class = new OpmlService(
+ $this->folderService,
+ $this->feedService,
+ $this->exporter
+ );
+ $this->uid = 'jack';
+ }
+
+ public function testExportEmpty()
+ {
+ $this->feedService->expects($this->once())
+ ->method('findAllForUser')
+ ->will($this->returnValue([]));
+ $this->folderService->expects($this->once())
+ ->method('findAllForUser')
+ ->will($this->returnValue([]));
+
+ $domdoc = $this->getMockBuilder(\DOMDocument::class)
+ ->getMock();
+
+ $this->exporter->expects($this->once())
+ ->method('build')
+ ->with([], [])
+ ->will($this->returnValue($domdoc));
+
+ $domdoc->expects($this->once())
+ ->method('saveXML')
+ ->will($this->returnValue('doc'));
+
+ $this->assertEquals('doc', $this->class->export('jack'));
+ }
+
+ public function testExportSuccess()
+ {
+ $feed = Feed::fromParams(['id' => 1]);
+ $folder = Folder::fromParams(['id' => 1]);
+ $this->feedService->expects($this->once())
+ ->method('findAllForUser')
+ ->will($this->returnValue([$feed]));
+ $this->folderService->expects($this->once())
+ ->method('findAllForUser')
+ ->will($this->returnValue([$folder]));
+
+ $domdoc = $this->getMockBuilder(\DOMDocument::class)
+ ->getMock();
+
+ $this->exporter->expects($this->once())
+ ->method('build')
+ ->with([$folder], [$feed])
+ ->will($this->returnValue($domdoc));
+
+ $domdoc->expects($this->once())
+ ->method('saveXML')
+ ->will($this->returnValue('doc'));
+
+ $this->assertEquals('doc', $this->class->export('jack'));
+ }
+
+}