Merge pull request #52913 from nextcloud/debt/noid/use-logical-operator

This commit is contained in:
Kate 2025-06-10 14:17:46 +02:00 committed by GitHub
commit 9faf386303
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 54 additions and 7 deletions

View file

@ -4044,12 +4044,6 @@
</TypeDoesNotContainNull>
</file>
<file src="lib/private/Group/Group.php">
<InvalidArgument>
<code><![CDATA[bool]]></code>
</InvalidArgument>
<InvalidOperand>
<code><![CDATA[$hide]]></code>
</InvalidOperand>
<LessSpecificReturnStatement>
<code><![CDATA[$users]]></code>
</LessSpecificReturnStatement>

View file

@ -377,7 +377,7 @@ class Group implements IGroup {
*/
public function hideFromCollaboration(): bool {
return array_reduce($this->backends, function (bool $hide, GroupInterface $backend) {
return $hide | ($backend instanceof IHideFromCollaborationBackend && $backend->hideGroup($this->gid));
return $hide || ($backend instanceof IHideFromCollaborationBackend && $backend->hideGroup($this->gid));
}, false);
}
}

View file

@ -0,0 +1,53 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace Test\Group;
use OC\Group\Group;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Group\Backend\ABackend;
use OCP\Group\Backend\IHideFromCollaborationBackend;
use OCP\IUserManager;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
abstract class HideFromCollaborationBackendTest extends ABackend implements IHideFromCollaborationBackend {
}
class HideFromCollaborationTest extends TestCase {
private IUserManager&MockObject $userManager;
private IEventDispatcher&MockObject $dispatcher;
protected function setUp(): void {
parent::setUp();
$this->userManager = $this->createMock(IUserManager::class);
$this->dispatcher = $this->createMock(IEventDispatcher::class);
}
public function testHideFromCollaboration(): void {
// Arrange
$backend1 = $this->createMock(HideFromCollaborationBackendTest::class);
$backend1->method('hideGroup')
->willReturn(false);
$backend2 = $this->createMock(HideFromCollaborationBackendTest::class);
$backend2->method('hideGroup')
->willReturn(true);
$group = new Group('group1', [$backend1, $backend2], $this->dispatcher, $this->userManager);
// Act
$result = $group->hideFromCollaboration();
// Assert
$this->assertTrue($result);
}
}