<?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\Reader\ReadErrorException;
use OC\L10N\L10N;
use OCA\News\Db\FeedMapper;
use OCA\News\Db\ItemMapper;
use OCA\News\Service\FeedService;
use OCA\News\Service\Exceptions\ServiceNotFoundException;
use OCA\News\Utility\Time;
use OCP\AppFramework\Db\DoesNotExistException;
use OCA\News\Db\Feed;
use OCA\News\Db\Item;
use OCA\News\Fetcher\Fetcher;
use OCA\News\Fetcher\FetcherException;
use OCP\IConfig;
use OCP\IL10N;
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;
class FeedServiceTest extends TestCase
{
/**
* @var \PHPUnit\Framework\MockObject\MockObject|FeedMapper
*/
private $feedMapper;
/**
* @var \PHPUnit\Framework\MockObject\MockObject|ItemMapper
*/
private $itemMapper;
/** @var FeedService */
private $feedService;
/**
* @var string
*/
private $user;
/**
* @var \PHPUnit\Framework\MockObject\MockObject|Fetcher
*/
private $fetcher;
/**
* @var int
*/
private $time;
/**
* @var int
*/
private $autoPurgeMinimumInterval;
/**
* @var \PHPUnit\Framework\MockObject\MockObject|\HTMLPurifier
*/
private $purifier;
/**
* @var \PHPUnit\Framework\MockObject\MockObject|L10N
*/
private $l10n;
/**
* @var \PHPUnit\Framework\MockObject\MockObject|LoggerInterface
*/
private $logger;
protected function setUp(): void
{
$this->logger = $this->getMockBuilder(LoggerInterface::class)
->disableOriginalConstructor()
->getMock();
$this->time = 222;
$this->autoPurgeMinimumInterval = 10;
$timeFactory = $this->getMockBuilder(Time::class)
->disableOriginalConstructor()
->getMock();
$timeFactory->expects($this->any())
->method('getTime')
->will($this->returnValue($this->time));
$this->l10n = $this->getMockBuilder(IL10N::class)
->disableOriginalConstructor()
->getMock();
$this->feedMapper = $this
->getMockBuilder(FeedMapper::class)
->disableOriginalConstructor()
->getMock();
$this->fetcher = $this
->getMockBuilder(Fetcher::class)
->disableOriginalConstructor()
->getMock();
$this->itemMapper = $this
->getMockBuilder(ItemMapper::class)
->disableOriginalConstructor()
->getMock();
$this->purifier = $this
->getMockBuilder(\HTMLPurifier::class)
->disableOriginalConstructor()
->getMock();
$config = $this->getMockBuilder(IConfig::class)
->disableOriginalConstructor()
->getMock();
$config->expects($this->any())
->method('getAppValue')
->with('news', 'autoPurgeMinimumInterval')
->will($this->returnValue($this->autoPurgeMinimumInterval));
$this->feedService = new FeedService(
$this->feedMapper,
$this->fetcher, $this->itemMapper, $this->logger, $this->l10n,
$timeFactory, $config, $this->purifier
);
$this->user = 'jack';
}
/**
* @covers \OCA\News\Service\FeedService::findAll
*/
public function testFindAll()
{
$this->response = [];
$this->feedMapper->expects($this->once())
->method('