Adjust query/event logging code in favour of more complex owncloud/diagnostics (#27643)
* Adjust query/event logging code in favour of more complex owncloud/diagnostics * Add descriptions to IQueryLogger and IEventLogger interfacespull/4515/head
parent
5b5c3a1773
commit
9fec4031b3
@ -1,58 +0,0 @@ |
||||
<?php |
||||
/** |
||||
* @copyright Copyright (c) 2016, ownCloud, Inc. |
||||
* |
||||
* @author Morris Jobke <hey@morrisjobke.de> |
||||
* @author Robin Appelman <robin@icewind.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/> |
||||
* |
||||
*/ |
||||
|
||||
namespace OC\Diagnostics; |
||||
|
||||
use OCP\Diagnostics\IEventLogger; |
||||
|
||||
/** |
||||
* Dummy event logger that doesn't actually log anything |
||||
*/ |
||||
class NullEventLogger implements IEventLogger { |
||||
/** |
||||
* Mark the start of an event |
||||
* |
||||
* @param $id |
||||
* @param $description |
||||
*/ |
||||
public function start($id, $description) { |
||||
} |
||||
|
||||
/** |
||||
* Mark the end of an event |
||||
* |
||||
* @param $id |
||||
*/ |
||||
public function end($id) { |
||||
} |
||||
|
||||
public function log($id, $description, $start, $end) { |
||||
} |
||||
|
||||
/** |
||||
* @return \OCP\Diagnostics\IEvent[] |
||||
*/ |
||||
public function getEvents() { |
||||
return array(); |
||||
} |
||||
} |
||||
@ -1,46 +0,0 @@ |
||||
<?php |
||||
/** |
||||
* @copyright Copyright (c) 2016, ownCloud, Inc. |
||||
* |
||||
* @author Morris Jobke <hey@morrisjobke.de> |
||||
* @author Robin Appelman <robin@icewind.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/> |
||||
* |
||||
*/ |
||||
|
||||
namespace OC\Diagnostics; |
||||
|
||||
use OCP\Diagnostics\IQueryLogger; |
||||
|
||||
class NullQueryLogger implements IQueryLogger { |
||||
/** |
||||
* @param string $sql |
||||
* @param array $params |
||||
* @param array $types |
||||
*/ |
||||
public function startQuery($sql, array $params = null, array $types = null) { |
||||
} |
||||
|
||||
public function stopQuery() { |
||||
} |
||||
|
||||
/** |
||||
* @return \OCP\Diagnostics\IQuery[] |
||||
*/ |
||||
public function getQueries() { |
||||
return array(); |
||||
} |
||||
} |
||||
@ -0,0 +1,66 @@ |
||||
<?php |
||||
/** |
||||
* @author Piotr Mrowczynski <piotr@owncloud.com> |
||||
* |
||||
* @copyright Copyright (c) 2017, ownCloud GmbH |
||||
* @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/> |
||||
* |
||||
*/ |
||||
|
||||
namespace Test\Diagnostics; |
||||
|
||||
use OC\Diagnostics\EventLogger; |
||||
use Test\TestCase; |
||||
|
||||
class EventLoggerTest extends TestCase { |
||||
|
||||
/** @var \OC\Diagnostics\EventLogger */ |
||||
private $logger; |
||||
|
||||
public function setUp() { |
||||
parent::setUp(); |
||||
|
||||
$this->logger = new EventLogger(); |
||||
} |
||||
|
||||
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)); |
||||
|
||||
} |
||||
} |
||||
@ -0,0 +1,54 @@ |
||||
<?php |
||||
/** |
||||
* @author Piotr Mrowczynski <piotr@owncloud.com> |
||||
* |
||||
* @copyright Copyright (c) 2017, ownCloud GmbH |
||||
* @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/> |
||||
* |
||||
*/ |
||||
|
||||
namespace Test\Diagnostics; |
||||
|
||||
use OC\Diagnostics\QueryLogger; |
||||
use Test\TestCase; |
||||
|
||||
class QueryLoggerTest extends TestCase { |
||||
|
||||
/** @var \OC\Diagnostics\QueryLogger */ |
||||
private $logger; |
||||
|
||||
public function setUp() { |
||||
parent::setUp(); |
||||
|
||||
$this->logger = new QueryLogger(); |
||||
} |
||||
|
||||
public function testQueryLogger() { |
||||
// Module is not activated and this should not be logged |
||||
$this->logger->startQuery("SELECT", ["testuser", "count"], ["string", "int"]); |
||||
$this->logger->stopQuery(); |
||||
$queries = $this->logger->getQueries(); |
||||
$this->assertSame(0, sizeof($queries)); |
||||
|
||||
// Activate module and log some query |
||||
$this->logger->activate(); |
||||
$this->logger->startQuery("SELECT", ["testuser", "count"], ["string", "int"]); |
||||
$this->logger->stopQuery(); |
||||
|
||||
$queries = $this->logger->getQueries(); |
||||
$this->assertSame(1, sizeof($queries)); |
||||
|
||||
} |
||||
} |
||||
Loading…
Reference in new issue