aboutsummaryrefslogtreecommitdiffstats
path: root/apps/federatedfilesharing/tests/NotificationsTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/federatedfilesharing/tests/NotificationsTest.php')
-rw-r--r--apps/federatedfilesharing/tests/NotificationsTest.php124
1 files changed, 45 insertions, 79 deletions
diff --git a/apps/federatedfilesharing/tests/NotificationsTest.php b/apps/federatedfilesharing/tests/NotificationsTest.php
index 4251f13f222..da5defd8e55 100644
--- a/apps/federatedfilesharing/tests/NotificationsTest.php
+++ b/apps/federatedfilesharing/tests/NotificationsTest.php
@@ -1,31 +1,15 @@
<?php
+
+declare(strict_types=1);
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Bjoern Schiessle <bjoern@schiessle.org>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
*/
-
namespace OCA\FederatedFileSharing\Tests;
use OCA\FederatedFileSharing\AddressHandler;
+use OCA\FederatedFileSharing\BackgroundJob\RetryJob;
use OCA\FederatedFileSharing\Notifications;
use OCP\BackgroundJob\IJobList;
use OCP\EventDispatcher\IEventDispatcher;
@@ -33,87 +17,69 @@ use OCP\Federation\ICloudFederationFactory;
use OCP\Federation\ICloudFederationProviderManager;
use OCP\Http\Client\IClientService;
use OCP\OCS\IDiscoveryService;
+use PHPUnit\Framework\MockObject\MockObject;
+use Psr\Log\LoggerInterface;
class NotificationsTest extends \Test\TestCase {
-
- /** @var AddressHandler | \PHPUnit\Framework\MockObject\MockObject */
- private $addressHandler;
-
- /** @var IClientService | \PHPUnit\Framework\MockObject\MockObject*/
- private $httpClientService;
-
- /** @var IDiscoveryService | \PHPUnit\Framework\MockObject\MockObject */
- private $discoveryService;
-
- /** @var IJobList | \PHPUnit\Framework\MockObject\MockObject */
- private $jobList;
-
- /** @var ICloudFederationProviderManager|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationProviderManager;
-
- /** @var ICloudFederationFactory|\PHPUnit\Framework\MockObject\MockObject */
- private $cloudFederationFactory;
-
- /** @var IEventDispatcher|\PHPUnit\Framework\MockObject\MockObject */
- private $eventDispatcher;
+ private AddressHandler&MockObject $addressHandler;
+ private IClientService&MockObject $httpClientService;
+ private IDiscoveryService&MockObject $discoveryService;
+ private IJobList&MockObject $jobList;
+ private ICloudFederationProviderManager&MockObject $cloudFederationProviderManager;
+ private ICloudFederationFactory&MockObject $cloudFederationFactory;
+ private IEventDispatcher&MockObject $eventDispatcher;
+ private LoggerInterface&MockObject $logger;
protected function setUp(): void {
parent::setUp();
- $this->jobList = $this->getMockBuilder('OCP\BackgroundJob\IJobList')->getMock();
- $this->discoveryService = $this->getMockBuilder(IDiscoveryService::class)->getMock();
- $this->httpClientService = $this->getMockBuilder('OCP\Http\Client\IClientService')->getMock();
- $this->addressHandler = $this->getMockBuilder('OCA\FederatedFileSharing\AddressHandler')
- ->disableOriginalConstructor()->getMock();
+ $this->jobList = $this->createMock(IJobList::class);
+ $this->discoveryService = $this->createMock(IDiscoveryService::class);
+ $this->httpClientService = $this->createMock(IClientService::class);
+ $this->addressHandler = $this->createMock(AddressHandler::class);
+ $this->logger = $this->createMock(LoggerInterface::class);
$this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class);
$this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class);
$this->eventDispatcher = $this->createMock(IEventDispatcher::class);
}
/**
- * get instance of Notifications class
- *
- * @param array $mockedMethods methods which should be mocked
- * @return Notifications | \PHPUnit\Framework\MockObject\MockObject
+ * @return Notifications|MockObject
*/
private function getInstance(array $mockedMethods = []) {
if (empty($mockedMethods)) {
- $instance = new Notifications(
+ return new Notifications(
$this->addressHandler,
$this->httpClientService,
$this->discoveryService,
$this->jobList,
$this->cloudFederationProviderManager,
$this->cloudFederationFactory,
- $this->eventDispatcher
+ $this->eventDispatcher,
+ $this->logger,
);
- } else {
- $instance = $this->getMockBuilder('OCA\FederatedFileSharing\Notifications')
- ->setConstructorArgs(
- [
- $this->addressHandler,
- $this->httpClientService,
- $this->discoveryService,
- $this->jobList,
- $this->cloudFederationProviderManager,
- $this->cloudFederationFactory,
- $this->eventDispatcher
- ]
- )->setMethods($mockedMethods)->getMock();
}
- return $instance;
+ return $this->getMockBuilder(Notifications::class)
+ ->setConstructorArgs(
+ [
+ $this->addressHandler,
+ $this->httpClientService,
+ $this->discoveryService,
+ $this->jobList,
+ $this->cloudFederationProviderManager,
+ $this->cloudFederationFactory,
+ $this->eventDispatcher,
+ $this->logger,
+ ]
+ )
+ ->onlyMethods($mockedMethods)
+ ->getMock();
}
- /**
- * @dataProvider dataTestSendUpdateToRemote
- *
- * @param int $try
- * @param array $httpRequestResult
- * @param bool $expected
- */
- public function testSendUpdateToRemote($try, $httpRequestResult, $expected) {
+ #[\PHPUnit\Framework\Attributes\DataProvider('dataTestSendUpdateToRemote')]
+ public function testSendUpdateToRemote(int $try, array $httpRequestResult, bool $expected): void {
$remote = 'http://remote';
$id = 42;
$timestamp = 63576;
@@ -124,14 +90,14 @@ class NotificationsTest extends \Test\TestCase {
$instance->expects($this->any())->method('getTimestamp')->willReturn($timestamp);
$instance->expects($this->once())->method('tryHttpPostToShareEndpoint')
- ->with($remote, '/'.$id.'/unshare', ['token' => $token, 'data1Key' => 'data1Value', 'remoteId' => $id], $action)
+ ->with($remote, '/' . $id . '/unshare', ['token' => $token, 'data1Key' => 'data1Value', 'remoteId' => $id], $action)
->willReturn($httpRequestResult);
// only add background job on first try
if ($try === 0 && $expected === false) {
$this->jobList->expects($this->once())->method('add')
->with(
- 'OCA\FederatedFileSharing\BackgroundJob\RetryJob',
+ RetryJob::class,
[
'remote' => $remote,
'remoteId' => $id,
@@ -152,7 +118,7 @@ class NotificationsTest extends \Test\TestCase {
}
- public function dataTestSendUpdateToRemote() {
+ public static function dataTestSendUpdateToRemote(): array {
return [
// test if background job is added correctly
[0, ['success' => true, 'result' => json_encode(['ocs' => ['meta' => ['statuscode' => 200]]])], true],