aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/Diagnostics/EventLoggerTest.php
blob: e69a27d70b3506aca1e0cf587c580aa0c6e56317 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
/**
 * SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-FileCopyrightText: 2017 ownCloud, Inc.
 * SPDX-License-Identifier: AGPL-3.0-only
 */

namespace Test\Diagnostics;

use OC\Diagnostics\EventLogger;
use OC\Log;
use OC\SystemConfig;
use Psr\Log\LoggerInterface;
use Test\TestCase;

class EventLoggerTest extends TestCase {
	/** @var \OC\Diagnostics\EventLogger */
	private $logger;

	protected function setUp(): void {
		parent::setUp();

		$this->logger = new EventLogger(
			$this->createMock(SystemConfig::class),
			$this->createMock(LoggerInterface::class),
			$this->createMock(Log::class)
		);
	}

	public function testQueryLogger() {
		// Module is not activated and this should not be logged
		$this->logger->start("test1", "testevent1");
		$this->logger->end("test1");
		$this->logger->log("test2", "testevent2", microtime(true), microtime(true));
		$events = $this->logger->getEvents();
		$this->assertSame(0, sizeof($events));

		// Activate module and log some query
		$this->logger->activate();

		// start one event
		$this->logger->start("test3", "testevent3");

		// force log of another event
		$this->logger->log("test4", "testevent4", microtime(true), microtime(true));

		// log started event
		$this->logger->end("test3");

		$events = $this->logger->getEvents();
		$this->assertSame("test4", $events['test4']->getId());
		$this->assertSame("testevent4", $events['test4']->getDescription());
		$this->assertSame("test3", $events['test3']->getId());
		$this->assertSame("testevent3", $events['test3']->getDescription());
		$this->assertSame(2, sizeof($events));
	}
}