From 9a2f2465116387880282df505e3d3230516604dd Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Tue, 18 Dec 2018 04:43:13 +0100 Subject: metrics: Added more stats --- tests/Unit/Controllers/Metrics/StatsTest.php | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'tests/Unit/Controllers/Metrics/StatsTest.php') diff --git a/tests/Unit/Controllers/Metrics/StatsTest.php b/tests/Unit/Controllers/Metrics/StatsTest.php index 1618b99b..2ebe52ae 100644 --- a/tests/Unit/Controllers/Metrics/StatsTest.php +++ b/tests/Unit/Controllers/Metrics/StatsTest.php @@ -2,12 +2,16 @@ namespace Engelsystem\Test\Unit\Controllers\Metrics; +use Carbon\Carbon; use Engelsystem\Controllers\Metrics\Stats; +use Engelsystem\Models\LogEntry; +use Engelsystem\Models\User\PasswordReset; use Engelsystem\Models\User\State; use Engelsystem\Models\User\User; use Engelsystem\Test\Unit\HasDatabase; use Engelsystem\Test\Unit\TestCase; use Illuminate\Support\Str; +use Psr\Log\LogLevel; class StatsTest extends TestCase { @@ -39,6 +43,62 @@ class StatsTest extends TestCase $this->assertEquals(3, $stats->arrivedUsers()); } + /** + * @covers \Engelsystem\Controllers\Metrics\Stats::sessions + */ + public function testSessions() + { + $this->initDatabase(); + + $this->database + ->getConnection() + ->table('sessions') + ->insert([ + ['id' => 'asd', 'payload' => 'data', 'last_activity' => new Carbon('1 month ago')], + ['id' => 'efg', 'payload' => 'lorem', 'last_activity' => new Carbon('55 minutes ago')], + ['id' => 'hij', 'payload' => 'ipsum', 'last_activity' => new Carbon('3 seconds ago')], + ['id' => 'klm', 'payload' => 'dolor', 'last_activity' => new Carbon()], + ]); + + $stats = new Stats($this->database); + $this->assertEquals(4, $stats->sessions()); + } + + /** + * @covers \Engelsystem\Controllers\Metrics\Stats::logEntries + */ + public function testLogEntries() + { + $this->initDatabase(); + + (new LogEntry(['level' => LogLevel::INFO, 'message' => 'Some info']))->save(); + (new LogEntry(['level' => LogLevel::INFO, 'message' => 'Another info']))->save(); + (new LogEntry(['level' => LogLevel::CRITICAL, 'message' => 'A critical error!']))->save(); + (new LogEntry(['level' => LogLevel::DEBUG, 'message' => 'Verbose output!']))->save(); + (new LogEntry(['level' => LogLevel::INFO, 'message' => 'Shutdown initiated']))->save(); + (new LogEntry(['level' => LogLevel::WARNING, 'message' => 'Please be cautious']))->save(); + + $stats = new Stats($this->database); + $this->assertEquals(6, $stats->logEntries()); + $this->assertEquals(3, $stats->logEntries(LogLevel::INFO)); + $this->assertEquals(1, $stats->logEntries(LogLevel::DEBUG)); + } + + /** + * @covers \Engelsystem\Controllers\Metrics\Stats::passwordResets + */ + public function testPasswordResets() + { + $this->initDatabase(); + $this->addUsers(); + + (new PasswordReset(['use_id' => 1, 'token' => 'loremIpsum123']))->save(); + (new PasswordReset(['use_id' => 3, 'token' => '5omeR4nd0mTok3N']))->save(); + + $stats = new Stats($this->database); + $this->assertEquals(2, $stats->passwordResets()); + } + /** * Add some example users */ -- cgit v1.2.3-54-g00ecf