nextcloud/apps/webhooks/tests/Service/PHPMongoQueryTest.php
Côme Chilliet 85e0407aad feat: Add support for headers and authentication headers in webhooks
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-06-11 14:10:29 +02:00

47 lines
1.1 KiB
PHP

<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Webhooks\Tests\Service;
use OCA\Webhooks\Service\PHPMongoQuery;
use OCP\Files\Events\Node\NodeWrittenEvent;
use Test\TestCase;
class PHPMongoQueryTest extends TestCase {
private function dataExecuteQuery() {
$event = [
'event' => [
'class' => NodeWrittenEvent::class,
'node' => [
'id' => 23,
'path' => '/tmp/file.txt',
],
],
'user' => [
'uid' => 'bob',
],
];
return [
[[], [], true],
[[], $event, true],
[['event.class' => NodeWrittenEvent::class], $event, true],
[['event.class' => NodeWrittenEvent::class, 'user.uid' => 'bob'], $event, true],
[['event.node.path' => '/.txt$/'], $event, true],
[['event.node.id' => ['$gte' => 22]], $event, true],
[['event.class' => 'SomethingElse'], $event, false],
];
}
/**
* @dataProvider dataExecuteQuery
*/
public function testExecuteQuery(array $query, array $document, bool $matches) {
$this->assertEquals($matches, PHPMongoQuery::executeQuery($query, $document));
}
}