Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Fix unit tests
Signed-off-by: Joas Schilling <[email protected]>
  • Loading branch information
nickvergessen committed Aug 17, 2022
commit 227c766f162db5b0e9b221930dfbb48022933038
63 changes: 22 additions & 41 deletions tests/lib/Notification/ManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
use OC\AppFramework\Bootstrap\RegistrationContext;
use OC\AppFramework\Bootstrap\ServiceRegistration;
use OC\Notification\Manager;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\ICache;
use OCP\ICacheFactory;
use OCP\IUserManager;
Expand All @@ -51,8 +50,6 @@ class ManagerTest extends TestCase {
protected $cacheFactory;
/** @var ICache|MockObject */
protected $cache;
/** @var ITimeFactory|MockObject */
protected $timeFactory;
/** @var IRegistry|MockObject */
protected $subscriptionRegistry;
/** @var LoggerInterface|MockObject */
Expand All @@ -68,7 +65,6 @@ protected function setUp(): void {
$this->validator = $this->createMock(IValidator::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->cache = $this->createMock(ICache::class);
$this->timeFactory = $this->createMock(ITimeFactory::class);
$this->subscriptionRegistry = $this->createMock(IRegistry::class);
$this->logger = $this->createMock(LoggerInterface::class);

Expand All @@ -82,10 +78,10 @@ protected function setUp(): void {
$this->coordinator->method('getRegistrationContext')
->willReturn($this->registrationContext);

$this->manager = new Manager($this->validator, $this->userManager, $this->cacheFactory, $this->timeFactory, $this->subscriptionRegistry, $this->logger, $this->coordinator);
$this->manager = new Manager($this->validator, $this->userManager, $this->cacheFactory, $this->subscriptionRegistry, $this->logger, $this->coordinator);
}

public function testRegisterApp() {
public function testRegisterApp(): void {
$this->assertEquals([], self::invokePrivate($this->manager, 'getApps'));

$this->manager->registerApp(DummyApp::class);
Expand All @@ -98,15 +94,15 @@ public function testRegisterApp() {
$this->assertCount(2, self::invokePrivate($this->manager, 'getApps'));
}

public function testRegisterAppInvalid() {
public function testRegisterAppInvalid(): void {
$this->manager->registerApp(DummyNotifier::class);

$this->logger->expects($this->once())
->method('error');
self::invokePrivate($this->manager, 'getApps');
}

public function testRegisterNotifier() {
public function testRegisterNotifier(): void {
$this->assertEquals([], self::invokePrivate($this->manager, 'getNotifiers'));

$this->manager->registerNotifierService(DummyNotifier::class);
Expand All @@ -119,7 +115,7 @@ public function testRegisterNotifier() {
$this->assertCount(2, self::invokePrivate($this->manager, 'getNotifiers'));
}

public function testRegisterNotifierBootstrap() {
public function testRegisterNotifierBootstrap(): void {
$this->registrationContext->method('getNotifierServices')
->willReturn([
new ServiceRegistration('app', DummyNotifier::class),
Expand All @@ -129,21 +125,21 @@ public function testRegisterNotifierBootstrap() {
$this->assertCount(1, self::invokePrivate($this->manager, 'getNotifiers'));
}

public function testRegisterNotifierInvalid() {
public function testRegisterNotifierInvalid(): void {
$this->manager->registerNotifierService(DummyApp::class);

$this->logger->expects($this->once())
->method('error');
self::invokePrivate($this->manager, 'getNotifiers');
}

public function testCreateNotification() {
public function testCreateNotification(): void {
$action = $this->manager->createNotification();
$this->assertInstanceOf('OCP\Notification\INotification', $action);
$this->assertInstanceOf(INotification::class, $action);
}

public function testNotify() {
/** @var \OCP\Notification\INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
public function testNotify(): void {
/** @var INotification|MockObject $notification */
$notification = $this->getMockBuilder(INotification::class)
->disableOriginalConstructor()
->getMock();
Expand All @@ -156,7 +152,6 @@ public function testNotify() {
$this->validator,
$this->userManager,
$this->cacheFactory,
$this->timeFactory,
$this->subscriptionRegistry,
$this->logger,
$this->coordinator,
Expand All @@ -172,10 +167,10 @@ public function testNotify() {
}


public function testNotifyInvalid() {
public function testNotifyInvalid(): void {
$this->expectException(\InvalidArgumentException::class);

/** @var \OCP\Notification\INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
/** @var INotification|MockObject $notification */
$notification = $this->getMockBuilder(INotification::class)
->disableOriginalConstructor()
->getMock();
Expand All @@ -188,7 +183,6 @@ public function testNotifyInvalid() {
$this->validator,
$this->userManager,
$this->cacheFactory,
$this->timeFactory,
$this->subscriptionRegistry,
$this->logger,
$this->coordinator,
Expand All @@ -202,8 +196,8 @@ public function testNotifyInvalid() {
$manager->notify($notification);
}

public function testMarkProcessed() {
/** @var \OCP\Notification\INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
public function testMarkProcessed(): void {
/** @var INotification|MockObject $notification */
$notification = $this->getMockBuilder(INotification::class)
->disableOriginalConstructor()
->getMock();
Expand All @@ -213,7 +207,6 @@ public function testMarkProcessed() {
$this->validator,
$this->userManager,
$this->cacheFactory,
$this->timeFactory,
$this->subscriptionRegistry,
$this->logger,
$this->coordinator,
Expand All @@ -228,8 +221,8 @@ public function testMarkProcessed() {
$manager->markProcessed($notification);
}

public function testGetCount() {
/** @var \OCP\Notification\INotification|\PHPUnit\Framework\MockObject\MockObject $notification */
public function testGetCount(): void {
/** @var INotification|MockObject $notification */
$notification = $this->getMockBuilder(INotification::class)
->disableOriginalConstructor()
->getMock();
Expand All @@ -239,7 +232,6 @@ public function testGetCount() {
$this->validator,
$this->userManager,
$this->cacheFactory,
$this->timeFactory,
$this->subscriptionRegistry,
$this->logger,
$this->coordinator,
Expand All @@ -254,33 +246,22 @@ public function testGetCount() {
$manager->getCount($notification);
}

public function dataIsFairUseOfFreePushService() {
public function dataIsFairUseOfFreePushService(): array {
return [
// Before 1st March
[1646089199, true, 4999, true],
[1646089199, true, 5000, true],
[1646089199, false, 4999, true],
[1646089199, false, 5000, true],

// After 1st March
[1646089200, true, 4999, true],
[1646089200, true, 5000, true],
[1646089200, false, 4999, true],
[1646089200, false, 5000, false],
[true, 4999, true],
[true, 5000, true],
[false, 4999, true],
[false, 5000, false],
];
}

/**
* @dataProvider dataIsFairUseOfFreePushService
* @param int $time
* @param bool $hasValidSubscription
* @param int $userCount
* @param bool $isFair
*/
public function testIsFairUseOfFreePushService(int $time, bool $hasValidSubscription, int $userCount, bool $isFair): void {
$this->timeFactory->method('getTime')
->willReturn($time);

public function testIsFairUseOfFreePushService(bool $hasValidSubscription, int $userCount, bool $isFair): void {
$this->subscriptionRegistry->method('delegateHasValidSubscription')
->willReturn($hasValidSubscription);

Expand Down