Stats: Added questions test

This commit is contained in:
Igor Scheller 2019-12-07 19:31:13 +01:00
parent e16e0b2644
commit 8fc159f287
2 changed files with 21 additions and 4 deletions

View File

@ -6,6 +6,7 @@ use Carbon\Carbon;
use Engelsystem\Database\Database; use Engelsystem\Database\Database;
use Engelsystem\Models\EventConfig; use Engelsystem\Models\EventConfig;
use Engelsystem\Models\News; use Engelsystem\Models\News;
use Engelsystem\Models\Question;
use Illuminate\Database\Query\Builder as QueryBuilder; use Illuminate\Database\Query\Builder as QueryBuilder;
use Illuminate\Database\Query\Expression as QueryExpression; use Illuminate\Database\Query\Expression as QueryExpression;
@ -221,13 +222,10 @@ class Stats
/** /**
* @param bool $answered * @param bool $answered
* @return int * @return int
* @codeCoverageIgnore
*/ */
public function questions($answered = null) public function questions($answered = null)
{ {
$query = $this $query = Question::query();
->getQuery('questions');
if (!is_null($answered)) { if (!is_null($answered)) {
if ($answered) { if ($answered) {
$query->whereNotNull('answerer_id'); $query->whereNotNull('answerer_id');

View File

@ -6,6 +6,7 @@ use Carbon\Carbon;
use Engelsystem\Controllers\Metrics\Stats; use Engelsystem\Controllers\Metrics\Stats;
use Engelsystem\Models\LogEntry; use Engelsystem\Models\LogEntry;
use Engelsystem\Models\News; use Engelsystem\Models\News;
use Engelsystem\Models\Question;
use Engelsystem\Models\User\PasswordReset; use Engelsystem\Models\User\PasswordReset;
use Engelsystem\Models\User\PersonalData; use Engelsystem\Models\User\PersonalData;
use Engelsystem\Models\User\State; use Engelsystem\Models\User\State;
@ -91,6 +92,24 @@ class StatsTest extends TestCase
$this->assertEquals(1, $stats->announcements(true)); $this->assertEquals(1, $stats->announcements(true));
} }
/**
* @covers \Engelsystem\Controllers\Metrics\Stats::questions
*/
public function testQuestions()
{
$this->addUsers();
$questionsData = ['text' => 'Lorem Ipsum', 'user_id' => 1];
(new Question($questionsData))->save();
(new Question($questionsData))->save();
(new Question($questionsData + ['answerer_id' => 2, 'answer' => 'Dolor sit!']))->save();
$stats = new Stats($this->database);
$this->assertEquals(3, $stats->questions());
$this->assertEquals(2, $stats->questions(false));
$this->assertEquals(1, $stats->questions(true));
}
/** /**
* @covers \Engelsystem\Controllers\Metrics\Stats::arrivedUsers * @covers \Engelsystem\Controllers\Metrics\Stats::arrivedUsers
*/ */