diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-12-18 02:23:44 +0100 |
---|---|---|
committer | msquare <msquare@notrademark.de> | 2018-12-19 22:36:42 +0100 |
commit | c5621b82cfeddee23b81871a53035fde747f73a9 (patch) | |
tree | 36e91622ac463011bd2b45f552d837a1abfb56ba /tests/Unit/Controllers/Metrics/StatsTest.php | |
parent | 3c8d0eeb440b8c263686ba81df7be87290ad9695 (diff) |
Implemented /metrics endpoint and reimplemented /stats
closes #418 (/metrics endpoint)
Usage:
```yaml
scrape_configs:
- job_name: 'engelsystem'
static_configs:
- targets: ['engelsystem.example.com:80']
```
Diffstat (limited to 'tests/Unit/Controllers/Metrics/StatsTest.php')
-rw-r--r-- | tests/Unit/Controllers/Metrics/StatsTest.php | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/Unit/Controllers/Metrics/StatsTest.php b/tests/Unit/Controllers/Metrics/StatsTest.php new file mode 100644 index 00000000..1618b99b --- /dev/null +++ b/tests/Unit/Controllers/Metrics/StatsTest.php @@ -0,0 +1,74 @@ +<?php + +namespace Engelsystem\Test\Unit\Controllers\Metrics; + +use Engelsystem\Controllers\Metrics\Stats; +use Engelsystem\Models\User\State; +use Engelsystem\Models\User\User; +use Engelsystem\Test\Unit\HasDatabase; +use Engelsystem\Test\Unit\TestCase; +use Illuminate\Support\Str; + +class StatsTest extends TestCase +{ + use HasDatabase; + + /** + * @covers \Engelsystem\Controllers\Metrics\Stats::newUsers + * @covers \Engelsystem\Controllers\Metrics\Stats::getQuery + * @covers \Engelsystem\Controllers\Metrics\Stats::__construct + */ + public function testNewUsers() + { + $this->initDatabase(); + $this->addUsers(); + + $stats = new Stats($this->database); + $this->assertEquals(2, $stats->newUsers()); + } + + /** + * @covers \Engelsystem\Controllers\Metrics\Stats::arrivedUsers + */ + public function testArrivedUsers() + { + $this->initDatabase(); + $this->addUsers(); + + $stats = new Stats($this->database); + $this->assertEquals(3, $stats->arrivedUsers()); + } + + /** + * Add some example users + */ + protected function addUsers() + { + $this->addUser(); + $this->addUser(); + $this->addUser(['arrived' => 1]); + $this->addUser(['arrived' => 1, 'active' => 1]); + $this->addUser(['arrived' => 1, 'active' => 1]); + } + + /** + * @param array $state + */ + protected function addUser(array $state = []) + { + $name = 'user_' . Str::random(5); + + $user = new User([ + 'name' => $name, + 'password' => '', + 'email' => $name . '@engel.example.com', + 'api_key' => '', + ]); + $user->save(); + + $state = new State($state); + $state->user() + ->associate($user) + ->save(); + } +} |